@qonsoll/lddb

0.0.24 • Public • Published

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

Package Sidebar

Install

npm i @qonsoll/lddb

Weekly Downloads

3

Version

0.0.24

License

ISC

Unpacked Size

48 kB

Total Files

42

Last publish

Collaborators

  • anhelina_bohdanova
  • swordsonline
  • alexfry123
  • vladbogach
  • slava.shamrelyuk
  • aleksandrgolyk
  • olenashevchuk
  • artfun00
  • sashka2131
  • rttsu
  • alexpassss
  • evgeniy.bogdanov
  • shudya_