discordjs-db

An innovative way to store Discord userdata


Keywords
db, database, document-based, discord, replit
License
MIT
Install
npm install discordjs-db@1.0.0

Documentation

Discord.db

An innovative way to store Discord userdata

How it works

Discord.db stores data in messages. A channel is treated as a "collection" and you can use querries to filter through each "document" (message).

image

Limitations

This database is completely free to use, but there are some drawbacks:

  • Discord ratelimits
  • 2000 character limit for each document
  • All documents are loaded into memory, even if you're searching by ID

Demo

const Datastore = require('./db.js');
const Discord = require('discord.js');
const express = require('express');

const { Client, MessageEmbed } = Discord;
const { Interface } = Datastore;
const client = new Client();
const db = new Interface(client);
const app = express();

client.once('ready', () => {
  console.log(`Logged in as ${client.user.tag}`);
  db.collection('847659131460780103').query({ key: 'value' }).get().then(console.log); // prints each document where `key` is `value`
});

app.get('/', (req, res) => res.send('OK'));

client.login(process.env.TOKEN);

app.listen(8080, () => console.log('Open on *:8080'));

Documentation


new Interface (client)

Generates a new interface - Interface

Interface#collection(channelID)

Get a collection from a channel - Collection


new Collection (channel)

Converts a channel to a collection - Collection

Collection#all()

Returns all documents in this collection - Promise<Array<Object>>

Collection#insert(document)

Inserts a document and returns the inserted document - Promise<Object>

Collection#query(query)

Returns a query that you can GET, UPDATE, or DELETE. Query is either a filter function or an object to match - Query


new Query(query)

Generate a new query - Query

Query#get()

Gets this query and returns all matching documents - Promise<Array<Object>>

Query#delete()

Deletes all documents matching this query - Promise<>

Query#edit(overwrite)

Overwrites all keys with their new valies in the overwrite parameter - Promise<>