Registry / database / miningo

miningo

JSON →
library1.1.0jsnpmunverified

Miningo is a tiny, embeddable, document-oriented database written in TypeScript, designed for playgrounds, experimental projects, or simple applications where a full database like MongoDB or PostgreSQL is overkill. Current stable version is 1.1.0, released in 2018. It supports in-memory, persistent JSON file, fast persistent storage, and browser localStorage adapters. It provides a MongoDB-like collection API with CRUD operations and basic querying (no operators). Key differentiator: simple setup, zero configuration, lightweight (single dependency), and TypeScript-first with JSON Schema validation support.

npm install miningo
INSTALL
IMPORT
SIG · MININGO
M
miningo
databasejavascriptv1.1.0
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

default
import miningo from 'miningo'
const miningo = require('miningo')
CommonJS users must use .default, e.g., require('miningo').default
InMemoryAdapter
import InMemoryAdapter from 'miningo/adapters/InMemoryAdapter'
require('miningo').InMemoryAdapter
Adapters are exported as default exports from subpaths
JsonStorageAdapter
import JsonStorageAdapter from 'miningo/adapters/JsonStorageAdapter'
require('miningo/adapters/JsonStorageAdapter')
CommonJS: require('miningo/adapters/JsonStorageAdapter').default
FastStorageAdapter
import FastStorageAdapter from 'miningo/adapters/FastStorageAdapter'
Available since v1.0.0
LocalStorageAdapter
import LocalStorageAdapter from 'miningo/adapters/LocalStorageAdapter'
Browser-only adapter

Demonstrates creating an in-memory database, inserting a document, finding by ID, listing all, and dropping a collection.

import miningo from 'miningo'; import InMemoryAdapter from 'miningo/adapters/InMemoryAdapter'; const db = miningo(new InMemoryAdapter()); interface Human { name: string; } async function main() { const Human = db.collection<Human>('Human'); const doc = await Human.insert({ name: 'Alice' }); console.log('Inserted:', doc); const found = await Human.find(doc._id); console.log('Found:', found); const all = await Human.findAll(); console.log('All:', all); await Human.drop(); console.log('Dropped collection'); } main().catch(console.error);
Debug
Known issues
gotchaCommonJS require() imports must use .default
fix
Use `const miningo = require('miningo').default`
affects: >=1.0.0
gotchafindBy() does not support query operators like $or, $in, etc.
fix
Use only simple equality checks: { field: value }
affects: >=1.0.0
deprecatedInMemoryAdapter may be deprecated in future versions in favor of default (no adapter)
fix
Call miningo() without arguments for in-memory mode
affects: 1.0.0 - 1.1.0
gotchaJSON storage adapter uses synchronous fs.writeFileSync under the hood, blocking event loop on writes
fix
Use FastStorageAdapter for better write performance
affects: >=1.0.0
Errors
Common errors & fixes
TypeError: miningo is not a function
CommonJS require('miningo') returns the default export as an object with a default property
fix
const miningo = require('miningo').default
Cannot find module 'miningo/adapters/InMemoryAdapter'
Tried to import from 'miningo' instead of the subpath
fix
Use import InMemoryAdapter from 'miningo/adapters/InMemoryAdapter'
Error: Adapter is not an instance of IAdapter
Passed adapter incorrectly (e.g., forgot 'new')
fix
Pass a new adapter instance: miningo(new InMemoryAdapter())
Error: No such adapter: BrowserLocalStorageAdapter
Spelling mismatch; correct name is LocalStorageAdapter
fix
Use LocalStorageAdapter from 'miningo/adapters/LocalStorageAdapter'
Upgrade
Version history
1.1.0latest on npm
Audit
Dependencies
uuidrequiredused for generating unique document IDs (_id)
Agent activity
2 hits · last 30 days
node
2
Resources
miningo — npm install miningo · libregistry