A Node.js client for the Riak Json https://github.com/basho-labs/riak_json/ document store framework.
npm install nrjnrj
===
A Node.js client for RiakJson document store framework
npm install -g nrj
`Usage
$3
Create a client, and reference a new or existing collection.
*Note: On the server side, the collection is only created, in any real sense, when either the first document is inserted, or
the collection indexing schema is saved.*`js
var riak_json = require('nrj');
var client = riak_json.Client.getClient(); // default http host and port
var cities_collection = client.collection('cities');
`$3
You may set an optional Solr indexing schema for a RiakJson collection.
If you do not set an explicit schema, and start inserting documents into a collection, RiakJson will
attempt to infer a schema based
on the document's structure (keep in mind, though, that the derived schema attempts to index every field in the document).Supported Solr indexing field types:
-
`string` (no spaces, think of a url slug)
- `text` (spaces allowed)
- `multi_string` (an array of strings, no spaces)
- `integer``js
schema = cities_collection.new_schema(); // get a new CollectionSchema object
schema.addTextField(name='city', required=true);
schema.addStringField('state', true);
schema.addMultiStringField('zip_codes'); // required: false
schema.addIntegerField('population');
schema.addStringField('country', true);
cities_collection.set_schema(schema, function(){ / callback fn / });
`You can now retrieve the stored schema (once RiakJson and Solr has had a chance to process it).
`js
schema_fields = cities_collection.get_schema(function(result) { console.log(result) })
// [{
// name: "city",
// type: "text",
// require: true
// }, {
// name: "state",
// type: "string",
// require: true
// }, {
// name: "zip_codes",
// type: "multi_string",
// require: false
// }, {
// name: "population",
// type: "integer",
// require: false
// }, {
// name: "country",
// type: "string",
// require: true
// }]
`$3
You can now perform CRUD operations on JSON documents and collections:
`js
var doc = new riak_json.RJDocument('nyc', {city: 'New York', state: 'NY'}); // key = 'nyc'
collection.insert(doc);collection.find_by_key('nyc'); // => {city: 'New York', state: 'NY'}
collection.remove(doc); // => deletes the document at key 'nyc'
`$3
See RiakJson Query Docs
for a complete list of valid query parameters.$3
`
npm test
``