lite-db-js
v4.2.0
Published
Local database for javascript's projects
Downloads
39
Readme
lite-db-js
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.
Table of Contents
Introduction
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.
Features
- Create collections and add documents.
- Perform complex queries on collections.
- Add listeners for document and collection changes.
- Lightweight and easy to integrate.
Installation
You can install lite-db-js
using npm:
npm install lite-db-js
Usage
Initialization
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();
Basic Operations
Creating a Collection
To create a collection, use the collection
method on your DB
instance:
const usersCollection = db.collection("users");
Adding documents
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: "[email protected]",
},
{
name: "Alice",
age: 33,
email: "[email protected]",
},
];
usersCollection.add(users);
Querying Documents
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
});
}
Listening to Document Changes
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: "[email protected]",
});
const docListener = document.on((snapshot) => {
if (snapshot.exists) {
console.log(snapshot.data); // Document data
}
});
docListener.remove();