This is a very simple noSQL database stored in a zipped file.
Warning: This module is not intended for heavy usage, but rather a simple solution for quick application in which you need a noSQL database, but you don't want use a complete solution like MongoDB or others like it.
To install this module you may run:
npm install --save dfdb
These are some basic examples you can take to use this library.
Getting connected to a database:
const { DocsOnFileDB } = require('dfdb');
let db = false;
DocsOnFileDB.connect('mydb', __dirname).then(conn => {
db = conn;
});
If such database file doesn't exist, it will be created.
Retriving a collection pointer:
let myCollection = false;
db.collection('my_collection').then(collection => {
myCollection = collection;
});
If such collection does not exist, it's created and initialized.
Adding a document to a collection:
myCollection.insert({
name: 'John Doe',
age: 32,
address: {
street: 'Washington'
number: '233'
}
}).then(insertedDoc => {
// . . .
});
Updating/replacing a document with ID 10
in a collection:
myCollection.update(10, {
name: 'Jane Doe',
age: 45,
address: {
street: 'Paris'
number: '1521'
}
}).then(updatedDoc => {
// . . .
});
Removing a document with ID 10
:
myCollection.remove(10).then(() => {
// . . .
});
Adding an index for field name
:
myCollection.addFieldIndex('name').then(() => {
// . . .
});
This is required because only indexed fields can be search without incurring in long response time.
Searching for a document using only indexed fields:
myCollection.find({ name: 'Jane Doe' }).then(docs => {
// . . .
});
// Or
myCollection.findOne({ name: 'Jane Doe' }).then(doc => {
// . . .
});
Searching for a document using indexed and unindexed fields:
myCollection.search({ name: 'Jane Doe', age: { $gt: 37 } }).then(docs => {
// . . .
});
// Or
myCollection.searchOne({ name: 'Jane Doe', age: { $gt: 37 } }).then(doc => {
// . . .
});
When searching for mixed index and unindexed fields, DocsOnFileDB will first look for documents that match indexed field conditions, and then filter by unindexed conditions.
Here's some other documentation you may want to visit:
MIT © 2018 Alejandro Dario Simi