discordjs-db
Version:
An innovative way to store Discord userdata
68 lines (52 loc) • 2.22 kB
Markdown
# Discordjs-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).

## 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
```js
const Datastore = require('discordjs-db');
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<>`