Skip to content

Repository files navigation

QuickMongo Logo

QuickMongo is a beginner-friendly and feature-rich wrapper for MongoDB that allows you to use Quick.db's Key-Value based syntax.

Installing

$ npm install --save quickmongo
OR
$ yarn add quickmongo

Documentation

https://quickmongo.js.org

Features

  • 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

Example

QuickMongo

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);}

Usage with quick.db

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

Discord Support

Plexi Development

Acquired from Archaeopteryx on 10/02/2022

About

Quick mongodb wrapper for beginners that provides key-value based interface.

Topics

Resources

Code of conduct

Contributing

Stars

77 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages