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').defaultconst 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').defaultinterface 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()