0.0.24 • Published 3 years ago

@qonsoll/lddb v0.0.24

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

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
0.0.20

3 years ago

0.0.21

3 years ago

0.0.22

3 years ago

0.0.23

3 years ago

0.0.24

3 years ago

0.0.15

3 years ago

0.0.16

3 years ago

0.0.17

3 years ago

0.0.18

3 years ago

0.0.19

3 years ago

0.0.13

3 years ago

0.0.14

3 years ago

0.0.12

3 years ago

0.0.10

3 years ago

0.0.11

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago