@qonsoll/lddb-js-sdk
v0.0.44
Published
## Installation
Downloads
15
Maintainers
Keywords
Readme
LDDB javascript SDK (@qonsoll/lddb-js-sdk)
Installation
npm install --save @qonsoll/lddb-js-sdk
or
yarn add @qonsoll/lddb-js-sdk
Initializing
import lddb from '@qonsoll/lddb-js-sdk'
const db = lddb.initialize({ databaseUrl: 'http://localhost:3000/lddb' })
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