ice-db

1.2.2 • Public • Published

IceDB

npm npm NpmLicense David npm bundle size (minified)

IceDB is a tiny and fast in-memory database for NodeJS

Setup

  1. Run npm i -s ice-db
  2. (optional step) Test the package by running cd node_modules/ice-db && npm test

Quick Start

  1. First import the module and instantiate the db .Thats it! Now you're ready to go 🙂
const {
    Ice 
= require('ice-db');
 
const db = new Ice();
  1. To create a collection:
const animals = db.createCollection({
    name: 'animals'
})

Now you can call a collection by using variable animals or db.animals

  1. To add a new record:
let daisy = animals.insert({
    type: 'cat',
    name: 'Daisy'
})
/*
This will return an object like this:
{ id: '4e6387b1-ac38-4e42-b474-1c6eaee1302d',
  rev: '1-1542481509127',
  type: 'cat',
  name: 'Daisy' }, but the id and rev would be unique
*/
  1. Records can be accessed by id:
daisy = animals.get(daisy.id)
/*
{ id: '4e6387b1-ac38-4e42-b474-1c6eaee1302d',
  rev: '1-1542481509127',
  type: 'cat',
  name: 'Daisy' }
*/
  1. To list all records in a collection:
animals.list();
  1. To update the record, provide the updated object:
daisy.type = 'kitty'
 
let updatedDaisy = animals.update(daisy)
/*
{ id: '6b45e668-698d-4d86-ae4a-bceca15af055',
  rev: '2-1542482143081',
  type: 'kitty',
  name: 'Daisy' }
*/

Notice: make sure that the id and rev are there:

let invalid = {
    type: 'cat',
    name: 'Margaret'
}
 
try {
    animals.update(invalid)
} catch (e) {
    console.error(e.message)
    // ID is not defined
}
let invalid = {
    type: 'cat',
    name: 'Margaret',
    id: daisy.id
}
 
try {
    animals.update(invalid)
} catch (e) {
    console.error(e.message)
    // Rev is not defined
}
  1. Delete an object:
animals.delete(daisy)
  1. To clear all data in a collection:
animals.drop()

or

db.dropCollection(animals)

or

db.dropCollection('animals')
  1. You can set a persistent storage for a db:
db.setStorage({
    path: './storage'
})
 
// async
db.save().then(()=>{
    console.log('Saved')
})
 
// sync
db.save(true)
 
// this will create a json file with a name of a collection per each containing all data

Package Sidebar

Install

npm i ice-db

Weekly Downloads

0

Version

1.2.2

License

GPL-3.0-or-later

Unpacked Size

49.3 kB

Total Files

10

Last publish

Collaborators

  • catraed