### Install QuickMongo Source: https://github.com/plexidev/quickmongo/blob/main/README.md Install QuickMongo using npm or yarn. ```bash $ npm install --save quickmongo OR $ yarn add quickmongo ``` -------------------------------- ### Usage with quick.db and MongoDriver Source: https://github.com/plexidev/quickmongo/blob/main/README.md Integrate QuickMongo's MongoDriver with quick.db for a familiar Key-Value interface. Ensure the driver connects before initializing QuickDB. ```javascript const { QuickDB } = require("quick.db"); // get mongo driver const { MongoDriver } = require("quickmongo"); const driver = new MongoDriver("mongodb://localhost/quickdb"); driver.connect().then(() => { console.log(`Connected to the database!`); init(); }); async function init() { // use quickdb with mongo driver // make sure this part runs after connecting to mongodb const db = new QuickDB({ driver }); // self calling async function just to get async // Setting an object in the database: console.log(await db.set("userInfo", { difficulty: "Easy" })); // -> { difficulty: 'Easy' } // Getting an object from the database: console.log(await db.get("userInfo")); // -> { difficulty: 'Easy' } // Getting an object property from the database: console.log(await db.get("userInfo.difficulty")); // -> 'Easy' // Pushing an element to an array (that doesn't exist yet) in an object: console.log(await db.push("userInfo.items", "Sword")); // -> { difficulty: 'Easy', items: ['Sword'] } // Adding to a number (that doesn't exist yet) in an object: console.log(await db.add("userInfo.balance", 500)); // -> { difficulty: 'Easy', items: ['Sword'], balance: 500 } // Repeating previous examples: console.log(await db.push("userInfo.items", "Watch")); // -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 } console.log(await db.add("userInfo.balance", 500)); // -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 } // Fetching individual properties console.log(await db.get("userInfo.balance")); // -> 1000 console.log(await db.get("userInfo.items")); // ['Sword', 'Watch'] // disconnect from the database await driver.close(); } ``` -------------------------------- ### QuickMongo Basic Usage Source: https://github.com/plexidev/quickmongo/blob/main/README.md Connect to a MongoDB database and perform basic CRUD operations using QuickMongo's dot notation. ```javascript import { Database } from "quickmongo"; const db = new Database("mongodb://localhost:27017/quickmongo"); db.on("ready", () => { console.log("Connected to the database"); doStuff(); }); // top-level awaits await db.connect(); async function doStuff() { // Setting an object in the database: await db.set("userInfo", { difficulty: "Easy" }); // -> { difficulty: 'Easy' } // Pushing an element to an array (that doesn't exist yet) in an object: await db.push("userInfo.items", "Sword"); // -> { difficulty: 'Easy', items: ['Sword'] } // Adding to a number (that doesn't exist yet) in an object: await db.add("userInfo.balance", 500); // -> { difficulty: 'Easy', items: ['Sword'], balance: 500 } // Repeating previous examples: await db.push("userInfo.items", "Watch"); // -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 500 } await db.add("userInfo.balance", 500); // -> { difficulty: 'Easy', items: ['Sword', 'Watch'], balance: 1000 } // Fetching individual properties await db.get("userInfo.balance"); // -> 1000 await db.get("userInfo.items"); // -> ['Sword', 'Watch'] // remove item await db.pull("userInfo.items", "Sword"); // -> { difficulty: 'Easy', items: ['Watch'], balance: 1000 } // set the data and automatically delete it after 1 minute await db.set("foo", "bar", 60); // 60 seconds = 1 minute // fetch the temporary data after a minute setTimeout(async () => { await db.get("foo"); // null }, 60_000); } ``` -------------------------------- ### Define Function Return Type Source: https://github.com/plexidev/quickmongo/blob/main/CONTRIBUTING.md Always specify the return type for functions using TypeScript. ```typescript const sum = (): number => 2 + 2; ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.