ZangoDB (v1.0.8) provides a MongoDB-like query interface over HTML5 IndexedDB in the browser. It supports most MongoDB filter operators ($and, $or, $regex, $elemMatch), update operators ($set, $unset, $inc), aggregation pipeline stages ($match, $project, $group, $unwind, $sort), and group operators ($sum, $avg). Unlike other IndexedDB wrappers, ZangoDB offers a full query language with projection and aggregation, similar to Minimongo but more actively maintained. It is designed for browser use and requires an IndexedDB implementation (native or polyfill). Release cadence is low; the version 1.0.8 has been stable with no recent updates. It ships TypeScript definitions.
npm install zangodbNo compatibility data collected yet for this library.
Verified import paths — ran on the pinned version, not inferred.
Initializes a ZangoDB database, inserts documents, and queries with filter and sort, then logs results.
const indexedDB = require('fake-indexeddb'); const IDBKeyRange = require('fake-indexeddb/lib/FDBKeyRange'); global.indexedDB = indexedDB; global.IDBKeyRange = IDBKeyRange;import { zango } from 'zangodb' instead of import zango from 'zangodb'Use .then() or await, not callbacks.
new zango.Db('mydb', { people: ['age', 'name'] })Ensure to call .toArray() on aggregation pipelines.
import { zango } from 'zangodb'Load script from unpkg: <script src='https://unpkg.com/zangodb@latest/dist/zangodb.min.js'></script>
Ensure indexedDB global is polyfilled in Node.js or the browser supports IndexedDB.
db.collection('people') requires that 'people' was listed in the schema: new zango.Db('mydb', { people: ['age'] })No dependency data recorded yet.