Skip to content
This repository was archived by the owner on Jul 16, 2019. It is now read-only.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

msglite Build Status

embedded, indexed, schemaless, document store

rationale

                                +                                 +                                          +
                                | index, constraints, foreign key |         encoded blob (schemaless)        |
                                |                                 |                                          |
       +---------------------------------------------+-------------------------------------------------------+
sqlite | id INTEGER PRIMARY KEY | name TEXT NOT NULL | number INT | blob BLOB                                |
       +-----------------------------------------------------------------------------------------------------+
data   | 1                      | 'foobar'           | 100        | { name: 'foobar', number: 100, age: 10 } |
       +------------------------+--------------------+------------+------------------------------------------+

usage

import sqlite from 'sqlite3'
import create from './index'

let db = new sqlite.Database(':memory:')
let createTable = 'CREATE TABLE foobar ( id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT, number INTEGER, blob BLOB )'
let accessor = create(db).table('foobar').index('name').index('number')
db.exec(createTable, () => {
  // read after write
  accessor
    .insert({ name: 'foobar', number: 100, age: 10 })
    .then(accessor.get)
    .then((result) => {
      console.log(result)
      // { name: 'foobar', number: 100, age: 10 }
    })

  // findAll
  accessor
    .insert({ name: 'foobar', number: 50, age: 10 })
    .then(() => accessor.insert({ name: 'baz', number: 50 }))
    .then(() => accessor.insert({ name: 'nyan', number: 150 }))
    // mongodb-like query language
    .then(() => accessor.findAll({ number: { $gt: 25, $lt: 125 } }))
    .then((results) => {
      console.log(results)
      // [ { name: 'foobar', number: 100, age: 10 }, { name: 'baz', number: 50 } ]
    })
})

About

embedded, indexed, schemaless, document store

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages