Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ryosukecla/miningo
tiny embedding document-oriented database written in typescript for nodejs and browser.
https://github.com/ryosukecla/miningo
database document-database embedding nodejs nosql typescript
Last synced: 3 months ago
JSON representation
tiny embedding document-oriented database written in typescript for nodejs and browser.
- Host: GitHub
- URL: https://github.com/ryosukecla/miningo
- Owner: RyosukeCla
- License: mit
- Created: 2018-11-09T18:51:49.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-24T05:38:21.000Z (11 months ago)
- Last Synced: 2024-11-09T07:47:55.268Z (3 months ago)
- Topics: database, document-database, embedding, nodejs, nosql, typescript
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/miningo
- Size: 822 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Miningo [![Build Status](https://travis-ci.org/RyosukeCla/miningo.svg?branch=master)](https://travis-ci.org/RyosukeCla/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
```js
import miningo from 'miningo'
```- commonjs
```js
const miningo = require('miningo').default
```### create client
```ts
const db = miningo()
```### create client with adapter
```ts
// 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
```ts
interface Human {
name: string
}const Human = db.collection('Human')
// or you can use json schema
const Human = db.collection('Human', {
name: { type: 'string' }
})
```### drop collection
```ts
await Human.drop()
```### insert document
```ts
const you = await Human.insert({ name: 'you' })
```### insert documents
```ts
const [you, me] = await Human.insertMany([{ name: 'you' }, { name: 'me' }])
```### find document
```ts
const doc = await Human.find(you._id)
```### find all documents
```ts
const docs = await Human.findAll()
```### find documents by ids
```ts
const docs = await Human.findMany([you._id, me._id])
```### find documents by very simple query (not support operators such as $or, $in ...)
```ts
const [you] = await Human.findBy({ name: 'you' })
```### update document
```ts
const updated = await Human.update(you._id, { name: 'me' })
```### remove document
```ts
const removed = await Human.remove(you._id)
```### remove documents
```ts
const removed = await Human.removeMany([you._id, me._id])
```### collection size
```ts
await Human.size()
```