dfd

dfdb

DFDB (Docs on File DB) locally stores a very simple noSQL database.

Showing:

Popularity

Downloads/wk

22

GitHub Stars

1

Maintenance

Last Commit

3yrs ago

Contributors

0

Package

Dependencies

11

Size (min+gzip)

82.5KB

License

MIT

Type Definitions

Built-In

Tree-Shakeable

No?

Categories

Readme

Build Status Codacy Badge Maintainability

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.

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

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100