seneca-globals-store
v1.1.0
Published
Seneca data store plugin for Globals DB
Downloads
6
Readme
seneca-globals-store
Seneca node.js data-storage plugin for Globals DB.
This module is a plugin for the Seneca framework. It provides a storage engine that uses MongoDB to persist data.
The Seneca framework provides an ActiveRecord-style data storage API. Each supported database has a plugin, such as this one, that provides the underlying Seneca plugin actions required for data persistence.
Support
Current Version: 1.1.0
Tested on: Node 0.10.33, Seneca 0.6.1
Quick example
var seneca = require('seneca')()
seneca.use('globals-store',{
path:'/globals/db/root/dir'
})
seneca.ready(function(){
var apple = seneca.make$('fruit')
apple.name = 'Pink Lady'
apple.price = 0.99
apple.save$(function(err,apple){
console.log( "apple.id = "+apple.id )
})
})
Install
npm install seneca
npm install seneca-globals-store
Install GlobalsDB by following this Quickstart Guide.
Usage
You don't use this module directly. It provides an underlying data storage engine for the Seneca entity API:
var entity = seneca.make$('typename')
entity.someproperty = "something"
entity.anotherproperty = 100
entity.save$( function(err,entity){ ... } )
entity.load$( {id: ...}, function(err,entity){ ... } )
entity.list$( {property: ...}, function(err,entity){ ... } )
entity.remove$( {id: ...}, function(err,entity){ ... } )
Queries
The standard Seneca query format is supported:
entity.list$({field1:value1, field2:value2, ...})
implies pseudo-queryfield1==value1 AND field2==value2, ...
- you can only do AND queries. That's all folks. Ya'll can go home now. The Fat Lady has sung.
entity.list$({f1:v1,...},{sort$:{field1:1}})
means sort by field1, ascendingentity.list$({f1:v1,...},{sort$:{field1:-1}})
means sort by field1, descendingentity.list$({f1:v1,...},{limit$:10})
means only return 10 resultsentity.list$({f1:v1,...},{skip$:5})
means skip the first 5entity.list$({f1:v1,...},{fields$:['field1','field2']})
means only return the listed fields (avoids pulling lots of data out of the database)- you can use sort$, limit$, skip$ and fields$ together
Native Driver
As with all seneca stores, you can access the native driver, in this case, the globals.Cache
db
object using entity.native$(function(err,db){...})
. For more information read the Official Globals DB Node.js API guide.
Test
export GLOBALS_HOME=/path/to/globalsdb/root/dir
npm test