Skip to content

kvnneff/modella-pouchdb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modella-PouchDB

Build Status

PouchDB plugin for modella.

Installation

Component:

component install staygrimm/modella-pouchdb

npm:

npm install modella-pouchdb

Example

var model = require('modella');
var pouch = require('modella-pouchdb');
var PouchDB = require('pouchdb');

var UserDB = new PouchDB('Users');

var User = model('User')
  .attr('_id')
  .attr('name')
  .attr('email');

User.use(pouch(UserDB));

/**
 * Initialize
 */

var user = new User;

user.
	._id(new Date().toISOString())
    .name('foo')
    .email('[email protected]');

user.save(function(err) {
  // do something
});

API

Pouch(instance)

Initialize adaptor with a PouchDB instance.

Model.all(callback)

Get all models (static method)

Model.find(id, callback)

Find a model (static method)

Model.createDesignDoc(name, mapFunction, callback)

Create a design document and store it in PouchDB instance

Model.query(name, options, callback)

Query view named name, with PouchDB options, returning callback with an error or array of result docs

model.save([options], callback)

Save the model (instance method)

model.remove([options], callback)

Remove the model (instance method)

Caveats

modella-pouchdb attaches a _rev attribute to every model. This attribute is used and managed by the adaptor when updating documents in the database. Note that if you modify this attribute on your models you will most likely encounter errors.

Test

npm install && make test

License

MIT