lite-db-js
is a lightweight JavaScript library that simulates the structure of Firestore locally. It allows you to create collections, add documents, perform complex queries, and add listeners to document changes. This library is ideal for applications that need a local database with Firestore-like capabilities.
lite-db-js
aims to provide a local database solution with a structure and functionalities similar to Firestore. This library is particularly useful for applications that require a local database to manage collections and documents, and to listen for changes in data.
- Create collections and add documents.
- Perform complex queries on collections.
- Add listeners for document and collection changes.
- Lightweight and easy to integrate.
You can install lite-db-js
using npm:
npm install lite-db-js
To use lite-db-js
, you need to import the DB
class and create an instance:
import DB from "lite-db-js";
const db = new DB();
To create a collection, use the collection
method on your DB
instance:
const usersCollection = db.collection("users");
To add documents to a collection use the method 'add' You can pass an array or a single element
const users = [
{
name: "John",
age: 25,
email: "john@example.com",
},
{
name: "Alice",
age: 33,
email: "alice@example.com",
},
];
usersCollection.add(users);
You can perform queries on collections using methods like 'where', 'orderBy'.
const query = usersCollection.where("age", ">", 30);
console.log(query.count); // Numbers of documents
if (query.empty === false) {
query.docs.forEach((doc) => {
console.log(doc.data); // Document data
});
}
You can listen to real-time updates on a collection or document using 'on':
const listener = query.on((snapshot) => {
if (snapshot.empty === false) {
snapshot.docs.forEasch((doc) => {
console.log(doc.data); // Document data
});
}
});
listener.remove();
const document = query.doc("uidDocument").set({
name: "Alex",
age: 44,
email: "alex@example.com",
});
const docListener = document.on((snapshot) => {
if (snapshot.exists) {
console.log(snapshot.data); // Document data
}
});
docListener.remove();