couchbase-odm
A simple Object Data Mapper for Couchbase.
Installation
Simply pull this repository or install with npm install couchbase-odm
.
Usage
Creating a model
var User = odm;
Chain .setupViews()
onto the end of createModel(...)
to automatically set up views based on indexes and import existing views from Couchbase.
Adding static functions
User { console; };
Adding an object
var u = name: 'Jesse' ;uusername = 'jessevandersar'; console; /* --> automatically generated UUIDv4-id */console; /* --> 'User' */ u; /* --> 'My name is Jesse' */ u;
Retrieving and updating an object
User;
Deleting an object
User;
Indexes/Views
Adding the 'index'-option to a field, as with the 'username'-field in the example, automatically creates a very basic view for querying this object-type with the field as a key. Note that calling .setupViews()
on the model is a prerequisite.
Querying an object type (view)
User;
Secondary view options (like limit, descending and stale) can be added as an object in the second parameter.
An 'all'-view will be added by default, usable with User.getAll(...)
.
Also, views that already exist in the design document will be automatically imported from Couchbase.
Note: imported views with names containing underscores will be usable in camelcase with User.specificView(key, callback)
.
Notes
This module is in a very early state. It hasn't been tested in production yet, but has worked for me during development, and has served as a nice excercise in working with Couchbase and creating Node modules. Please let me know about your thoughts and/or bugs that you've encountered!
Github repo: https://github.com/jessevandersar/couchbase-odm