@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

/@qonsoll/lddb/

    Package Sidebar

    Install

    npm i @qonsoll/lddb

    Weekly Downloads

    0

    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_