ostore
v0.0.6
Published
Object Store for JavaScript
Downloads
5
Readme
OStore
In-memory object store for JavaScript, with some MongoDB operators
Installation
Via npm on Node:
npm install ostore
In your browser: TBD
Usage
Reference in your program
var ostore = require('ostore');
Create an store
var store = ostore.createStore();
Put an item with a key
var item = { name: 'Adam', age: 800 };
store.put(1, item);
The key is NOT added to the item.
Add an item
var item = { name: 'Adam', age: 800 };
var id = store.add(item);
The key is NOT added to the original item, but the saved item (a clone) has a new field id
.
Retrieve item by key
var item = store.get(id);
Remove item by key
store.remove(id);
Retrieve items
var items = store.find(id);
Retrieve items with criteria
var items = store.find({ name: 'Adam' });
Retrieve items with criteria and fields
var items = store.find({ name: 'Adam' }, { age: true });
In this example, only the age
is retrieved.
Retrieve all items using empty criteria and fields
var items = store.find({ }, { age: true });
You can also null
criteria
var items = store.find(null, { age: true });
Update fields in an item
store.update(1, { age: 700 });
Samples
TBD
Versions
- 0.0.1 Published
- 0.0.2 Published, fixing package.json
- 0.0.3 Published, remove added
- 0.0.4 Published, store.clear
- 0.0.5 Published, new query and aggregation operators, not documented yet (see test folder)
- 0.0.6 Published, update with criteria and multi, remove with criteria
To Do
- Remove item (done)
- Browser support
- Dog fooding in a project (Done)
Inception
It was born after reading an email at Node.js list: Tests for a REST store generator
There are some recorded videos showing my TDD workflow (before switching to use simpleunit framework):
TDD Rocks! (7) OStore With JavaScript/Node.Js TDD Rocks! (2) OStore With JavaScript/Node.Js
And one video about JavaScript and TDD:
TDD Rocks! (9) JavaScript And Node.Js
Contribution
Feel free to file issues and submit pull requests � contributions are welcome.
If you submit a pull request, please be sure to add or update corresponding
test cases, and ensure that npm test
continues to pass.