@qonsoll/lddb
v0.0.24
Published
Local document database (firebase like) created by Qonsoll team
Downloads
8
Readme
Local document database (@qonsoll/lddb)
Installation
npm install --save @qonsoll/lddb
or
yarn add @qonsoll/lddb
Initializing
const LDDB = require('@qonsoll/lddb')
const db = new LDDB({ dbPath: './db' })
How to use?
Save document to the database
const newId = db.id(); // Get unique id for the new document
db.collection('users').doc(newId).set({ name: 'User name' })
With subcollection
const newUserId = db.id(); // Get unique id for the new document
const newSkillId = db.id()
db.collection('users').doc(newId).collection('skills').doc(newSkillId).set({ name: 'Javascript' })
or
const newUserId = db.id(); // Get unique id for the new document
const newSkillId = db.id()
db.collection(`users/${newId}/skills`).doc(newSkillId).set({ name: 'Javascript' })
or
const newUserId = db.id(); // Get unique id for the new document
const newSkillId = db.id()
db.doc(`users/${newId}/skills/${newSkillId}`).set({ name: 'Javascript' })
Update document
db.collection('users').doc('<documentIdHere>').update({ name: 'New user name' })
Delete document
db.collection('users').doc('<documentIdHere>').delete()
Get collection
db.collection('users').get()
Get document
db.collection('users').doc('<documentIdHere>').get()
Order by
db.collection('users').orderBy('age', 'asc').get()
or
db.collection('users').orderBy('age', 'asc').orderBy('index', 'desc').get()
Filter
You can apply any rule from the list: <, >, <=, ==, >=, !=, array-contains, array-contains-any, in, not-in
db.collection('users').where('age', '>', 30).orderBy('age', 'asc').get()
or
db.collection('users').where('age', '>', 30).where('city', '==', 'Khmelnitskii').get()
or
db.collection('users').where([['age', '>', 30], ['city', '==', 'Khmelnitskii']]).get()
Filter by text
db.collection('users').where('name', 'string-contains', 'ole').get()
Limit and pagination
db.collection('users').where('age', '>', 30).limit(10).page(1).get()
Listen for realtime updates (collection)
db.collection('users').onSnapshot((snapshot) => {
const prev = snapshot.prev;
const docs = snapshot.docs;
})
or using any type of filter
db.collection('users').where('age', '>', 25).onSnapshot((snapshot) => {
const prev = snapshot.prev;
const docs = snapshot.docs;
})
Listen for realtime updates (document)
db.collection('users').doc('someId').onSnapshot((snapshot) => {
const prev = snapshot.prev;
const data = snapshot.data;
})
Unsubscribe from listening DB
const unsubscribe = db.collection('users').doc('someId').onSnapshot((snapshot) => {
const prev = snapshot.prev;
const data = snapshot.data;
})
unsubscribe() // this method will unsubscribe from the watcher