backbone-mongo

0.6.10 • Public • Published

Build Status

logo

BackboneMongo provides MongoDB storage for BackboneORM.

Because BackboneORM's query language is based on MongoDB's query language, many queries just work! With a twist...Backbone.ORM provides cross-collection relationships and embedded data for MongoDB.

In addition, BackboneMongo using CouchDB-style '_rev' versioning to ensure coherency of data.

Examples (CoffeeScript)

class Change extends Backbone.Model
  model_name: 'Change'
  sync: require('backbone-orm').sync(Change)
 
class Task extends Backbone.Model
  urlRoot: 'mongodb://localhost:27017/tasks'
  schema:
    project: -> ['belongsTo'Project]
    changes: -> ['hasMany'Changeembed: true]
  sync: require('backbone-mongo').sync(Task)
 
class Project extends Backbone.Model
  urlRoot: 'mongodb://localhost:27017/projects'
  schema:
    tasks: -> ['hasMany'Task]
    changes: -> ['hasMany'Changeembed: true]
  sync: require('backbone-mongo').sync(Project)

Examples (JavaScript)

var Change = Backbone.Model.extend({
  model_name: 'Change',
});
Task.prototype.sync = require('backbone-orm').sync(Change);
 
var Task = Backbone.Model.extend({
  urlRoot: 'mongodb://localhost:27017/tasks',
  schema: {
    project: function() { return ['belongsTo', Project]; }
    changes: function() { return ['hasMany', Change, {embed: true}]; }
  }
});
Task.prototype.sync = require('backbone-mongo').sync(Task);
 
var Project = Backbone.Model.extend({
  urlRoot: 'mongodb://localhost:27017/projects',
  schema: {
    tasks: function() { return ['hasMany', Task]; }
    changes: function() { return ['hasMany', Change, {embed: true}]; }
  }
});
Project.prototype.sync = require('backbone-mongo').sync(Project);

Please checkout the website for installation instructions, examples, documentation, and community!

For Contributors

To build the library for Node.js:

$ gulp build

Please run tests before submitting a pull request:

$ gulp test --quick

and eventually all tests:

$ npm test

Package Sidebar

Install

npm i backbone-mongo

Weekly Downloads

3

Version

0.6.10

License

MIT

Last publish

Collaborators

  • kmalakoff
  • gwilymh
  • ryansolid
  • seancunningham