QuickMongo is a beginner-friendly and feature-rich wrapper for MongoDB that allows you to use Quick.db's Key-Value based syntax.
$ npm install --save quickmongo
OR
$ yarn add quickmongo- Beginner friendly
- Asynchronous
- Dot notation support
- Key-Value like interface
- Easy to use
- TTL (temporary storage) supported
- Provides quick.db compatible API
- MongoDriver for quick.db
import{Database}from"quickmongo";constdb=newDatabase("mongodb://localhost:27017/quickmongo");db.on("ready",()=>{console.log("Connected to the database");doStuff();});// top-level awaitsawaitdb.connect();asyncfunctiondoStuff(){// Setting an object in the database:awaitdb.set("userInfo",{difficulty: "Easy"});// -> { difficulty: 'Easy' }// Pushing an element to an array (that doesn't exist yet) in an object:awaitdb.push("userInfo.items","Sword");// -> { difficulty: 'Easy', items: ['Sword'] }// Adding to a number (that doesn't exist yet) in an object:awaitdb.add("userInfo.balance",500);// -> { difficulty: 'Easy', items: ['Sword'], balance: 500 }// Repeating previous examples:awaitdb.push("userInfo.items","Watch");// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 }awaitdb.add("userInfo.balance",500);// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 }// Fetching individual propertiesawaitdb.get("userInfo.balance");// -> 1000awaitdb.get("userInfo.items");// -> ['Sword', 'Watch']// remove itemawaitdb.pull("userInfo.items","Sword");// -> { difficulty: 'Easy', items: ['Watch'], balance: 1000 }// set the data and automatically delete it after 1 minuteawaitdb.set("foo","bar",60);// 60 seconds = 1 minute// fetch the temporary data after a minutesetTimeout(async()=>{awaitdb.get("foo");// null},60_000);}const{ QuickDB }=require("quick.db");// get mongo driverconst{ MongoDriver }=require("quickmongo");constdriver=newMongoDriver("mongodb://localhost/quickdb");driver.connect().then(()=>{console.log(`Connected to the database!`);init();});asyncfunctioninit(){// use quickdb with mongo driver// make sure this part runs after connecting to mongodbconstdb=newQuickDB({ driver });// self calling async function just to get async// Setting an object in the database:console.log(awaitdb.set("userInfo",{difficulty: "Easy"}));// -> { difficulty: 'Easy' }// Getting an object from the database:console.log(awaitdb.get("userInfo"));// -> { difficulty: 'Easy' }// Getting an object property from the database:console.log(awaitdb.get("userInfo.difficulty"));// -> 'Easy'// Pushing an element to an array (that doesn't exist yet) in an object:console.log(awaitdb.push("userInfo.items","Sword"));// -> { difficulty: 'Easy', items: ['Sword'] }// Adding to a number (that doesn't exist yet) in an object:console.log(awaitdb.add("userInfo.balance",500));// -> { difficulty: 'Easy', items: ['Sword'], balance: 500 }// Repeating previous examples:console.log(awaitdb.push("userInfo.items","Watch"));// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 }console.log(awaitdb.add("userInfo.balance",500));// -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 }// Fetching individual propertiesconsole.log(awaitdb.get("userInfo.balance"));// -> 1000console.log(awaitdb.get("userInfo.items"));// ['Sword', 'Watch']// disconnect from the databaseawaitdriver.close();}Maintained by Plexi Development
Acquired from Archaeopteryx on 10/02/2022
