1.1.0 • Published 5 years ago

miningo v1.1.0

Weekly downloads
1
License
MIT
Repository
github
Last release
5 years ago

Miningo Build Status

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()
1.1.0

5 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago