{"id":43735,"library":"quickmongo","title":"QuickMongo","description":"QuickMongo is a beginner-friendly key-value wrapper for MongoDB, providing a simple interface similar to quick.db. Version 5.2.0 (latest) is actively maintained with TypeScript support. It offers asynchronous operations, dot notation, TTL support, and compatibility with quick.db via MongoDriver. Unlike raw MongoDB drivers, it abstracts collections and documents into a simple set/get/push interface, making it ideal for small projects and prototyping.","status":"active","version":"5.2.0","language":"javascript","source_language":"en","source_url":"https://github.com/CesiumLabs/quickmongo","tags":["javascript","quickmongo","mongodb","mongoose","schema","api","database","quick.db","enmap","typescript"],"install":[{"cmd":"npm install quickmongo","lang":"bash","label":"npm"},{"cmd":"yarn add quickmongo","lang":"bash","label":"yarn"},{"cmd":"pnpm add quickmongo","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Used for MongoDB connection and operations; quickmongo does not bundle its own driver.","package":"mongoose","optional":false}],"imports":[{"note":"The package is ESM-only since v5. Use named import for 'Database'.","wrong":"const Database = require('quickmongo')","symbol":"Database","correct":"import { Database } from 'quickmongo'"},{"note":"ESM-only import; used with quick.db for MongoDB backend.","wrong":"const { MongoDriver } = require('quickmongo')","symbol":"MongoDriver","correct":"import { MongoDriver } from 'quickmongo'"},{"note":"Default export is the 'Database' class; equivalent to import { Database }.","wrong":"const qm = require('quickmongo')","symbol":"default import","correct":"import QuickMongo from 'quickmongo'"},{"note":"TypeScript users should use type annotation with the Database type, but default import works too.","wrong":"import Database from 'quickmongo'","symbol":"QuickMongo (TypeScript)","correct":"import { Database } from 'quickmongo'; const db: Database = ..."}],"quickstart":{"code":"import { Database } from 'quickmongo';\n\nconst db = new Database(process.env.MONGO_URI ?? 'mongodb://localhost:27017/mydb');\n\ndb.on('ready', () => {\n  console.log('Connected to database');\n});\n\nawait db.connect();\n\nawait db.set('user', { name: 'Alice', balance: 100 });\nconst user = await db.get('user');\nconsole.log(user); // { name: 'Alice', balance: 100 }\n\nawait db.push('user.items', 'sword');\nawait db.add('user.balance', 50);\n\nconst balance = await db.get('user.balance');\nconsole.log(balance); // 150\n\n// TTL: auto-delete after 10 seconds\nawait db.set('temp', 'value', 10);\nsetTimeout(async () => {\n  const val = await db.get('temp');\n  console.log(val); // null\n}, 11000);","lang":"typescript","description":"Shows how to connect, set, get, push, add, and use TTL with QuickMongo's Database class."},"warnings":[{"fix":"Switch to ES modules (e.g., type: module in package.json) and use import statements.","message":"Versions >=5.0 are ESM-only. CommonJS require() will throw a MODULE_NOT_FOUND error.","severity":"breaking","affected_versions":">=5.0"},{"fix":"Explicitly pass connection URI: new Database(uri).","message":"The MongoDB connection string must be provided to the Database constructor; the old default 'mongodb://localhost:27017/quickmongo' may not work in newer versions.","severity":"breaking","affected_versions":">=5.0"},{"fix":"Ensure TTL parameter is seconds (e.g., 60 for 1 minute).","message":"TTL values are in seconds, not milliseconds. Setting TTL to 60 will auto-delete after 1 minute.","severity":"gotcha","affected_versions":"*"},{"fix":"Replace db.fetch(key) with db.get(key).","message":"The .fetch() method is deprecated; use .get() instead.","severity":"deprecated","affected_versions":">=4.0"}],"env_vars":null,"search_vec":"'5.2.0':22 'abstract':49 'activ':25 'api':71 'asynchron':32 'beginn':6 'beginner-friend':5 'collect':50 'compat':39 'databas':72 'document':52 'dot':34 'driver':47 'enmap':74 'friend':7 'ideal':60 'interfac':17,57 'javascript':66 'key':9 'key-valu':8 'latest':23 'maintain':26 'make':58 'mongodb':13,46,68 'mongodriv':43 'mongoos':69 'notat':35 'offer':31 'oper':33 'project':63 'prototyp':65 'provid':14 'quick.db':20,41,73 'quickmongo':1,2,67 'raw':45 'schema':70 'set/get/push':56 'similar':18 'simpl':16,55 'small':62 'support':29,37 'ttl':36 'typescript':28,75 'unlik':44 'valu':10 'version':21 'via':42 'wrapper':11","created_at":"2026-06-05T17:01:13.498734+00:00","updated_at":"2026-06-05T17:01:13.498734+00:00","problems":[{"fix":"Run: npm install quickmongo; for v5, use import instead of require.","cause":"Package not installed or import path incorrect (e.g., using require in ESM-only version).","error":"Cannot find module 'quickmongo'"},{"fix":"Pass a valid MongoDB URI: new Database('mongodb://...')","cause":"Database instance created without a connection URI.","error":"MongooseError: The `uri` parameter to `openUri()` must be a string, got \"undefined\""},{"fix":"Await db.connect() before operations; ensure correct import: import { Database } from 'quickmongo'.","cause":"Database not connected; or using wrong import (e.g., default import vs named).","error":"TypeError: db.set is not a function"},{"fix":"Start MongoDB service or check connection string. Use mongodb://localhost:27017 as default.","cause":"MongoDB server not running or URI is wrong (port/host).","error":"MongoDB connection error: MongooseServerSelectionError: connect ECONNREFUSED"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/CesiumLabs/quickmongo#readme","github":"https://github.com/CesiumLabs/quickmongo","docs":null,"changelog":null,"pypi":null,"npm":"quickmongo","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}