miningo
v1.1.0
Published
Tiny embedding document-oriented database written in typescript.
Downloads
21
Maintainers
Readme
Miningo
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.
installation
$ npm i miningo
API
import
- esmodule / ts
import miningo from 'miningo'
- commonjs
const miningo = require('miningo').default
create client
const db = miningo()
create client with adapter
// 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
create or get collection
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' }
})
drop collection
await Human.drop()
insert document
const you = await Human.insert({ name: 'you' })
insert documents
const [you, me] = await Human.insertMany([{ name: 'you' }, { name: 'me' }])
find document
const doc = await Human.find(you._id)
find all documents
const docs = await Human.findAll()
find documents by ids
const docs = await Human.findMany([you._id, me._id])
find documents by very simple query (not support operators such as $or, $in ...)
const [you] = await Human.findBy({ name: 'you' })
update document
const updated = await Human.update(you._id, { name: 'me' })
remove document
const removed = await Human.remove(you._id)
remove documents
const removed = await Human.removeMany([you._id, me._id])
collection size
await Human.size()