dfdb
v0.3.3
Published
DFDB (DocsOnFileDB) locally stores a very simple noSQL database inside a zip file.
Downloads
75
Maintainers
Readme
DocsOnFileDB
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.
Contents
Installation
To install this module you may run:
npm install --save dfdb
How to use
These are some basic examples you can take to use this library.
Connection
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.
Collection
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.
Insert a document
Adding a document to a collection:
myCollection.insert({
name: 'John Doe',
age: 32,
address: {
street: 'Washington'
number: '233'
}
}).then(insertedDoc => {
// . . .
});
Update a document
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 => {
// . . .
});
Remove document
Removing a document with ID 10
:
myCollection.remove(10).then(() => {
// . . .
});
Adding a field index
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.
Search
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.
More documentation
Here's some other documentation you may want to visit:
Licence
MIT © 2018 Alejandro Dario Simi