Tiny embedding document-oriented database written in typescript.
- For playground / experimental / simple / application use.
- For who not want to use mongodb / redis / postgress, but want to use database.
$ npm i miningo
- esmodule / ts
import miningo from 'miningo'
- commonjs
const miningo = require('miningo').default
const db = miningo()
// default
import InMemoryAdapter from 'miningo/adapters/InMemoryAdapter'
const db = miningo(new InMemoryAdapter())
// persistent json storage. save json to dataDir. very low performance.
import JsonStorageAdapter from 'miningo/adapters/JsonStorageAdapter'
const db = miningo(new JsonStorageAdapter('./data'))
// persistent storage faster than json storage.
import FastStorageAdapter from 'miningo/adapters/FastStorageAdapter'
const db = miningo(new FastStorageAdapter('./data'))
// persistent local storage for browser.
import LocalStorageAdapter from 'miningo/adapters/LocalStorageAdapter'
const namespace = 'test'
const db = miningo(new LocalStorageAdapter(namespace))
// commonjs
const JsonStorageAdapter = require('miningo/adapters/JsonStorageAdapter').default
interface Human {
name: string
}
const Human = db.collection<Human>('Human')
// or you can use json schema
const Human = db.collection<Human>('Human', {
name: { type: 'string' }
})
await Human.drop()
const you = await Human.insert({ name: 'you' })
const [you, me] = await Human.insertMany([{ name: 'you' }, { name: 'me' }])
const doc = await Human.find(you._id)
const docs = await Human.findAll()
const docs = await Human.findMany([you._id, me._id])
const [you] = await Human.findBy({ name: 'you' })
const updated = await Human.update(you._id, { name: 'me' })
const removed = await Human.remove(you._id)
const removed = await Human.removeMany([you._id, me._id])
await Human.size()