Coding apps without to be worried about data models.
var MPill = require('mpill').MPill;
var url = 'mongodb://127.0.0.1/mpill';
users = new MPill('users', url);models.js
var MPill = require('../mpill.js').MPill;
var colls = ['users','groups','roles','tasks'];
var url = 'mongodb://127.0.0.1/mydb';
// exports each collection
for(var i in colls){
module.exports[colls[i]] = new MPill(colls[i], url);
}userController.js (let's said this is for express route)
var models = require('./models');
var Users = {};
Users.List = function(req, res){
models.users.FindOne({'email': 'rrunner@acme.co'}, function(err, rrunner){
if(err){ return res.status(500); }
var query = { user_id: rrunner._id, label: 'open' };
models.tasks.Find(query, function(err, toDo){
if(err){ return res.status(500); }
res.json({
user: rrunner,
tasks: toDo
});
});
});
};
...
module.exports.Users = Users;'Generic methods'
model.Connect(cb)
model.DropDB(cb)
'Common methods'
model.Insert(doc, cb)
model.Update(query, doc, concern, cb)
model.Remove(query, cb)
model.Find(query, cb, project, options, limit, sort)
model.FindOne(query, cb)
model.CreateIndex(query, cb)
model.DropCollection(query, cb)
model.DropIndex(query, cb)
model.CreateCollection(cb)
model.Count(query, cb)
model.Aggregate(query, cb)
'Special methods'
model.FindByObjectId(query, key, cb)
model.UpdateByObjectId(query, doc, key, cb)
model.RemoveByObjectId(query, key, cb)
model.parseOID(value, cb)Running CRUD sample
npm install
// mongod --dbpath $HOME/data/mpill &
node example/crud.jsResults:
✓ CreateCollection
✓ DropCollection
✓ Insert
✓ Update
✓ FindOne
✓ FindByObjectId
✓ UpdateByObjectId
✓ RemoveByObjectId
✓ Count
✓ DropDB
Statistics: {"pass":10,"fail":0,"warn":0}Clone deck tool to see a restify implementation.
Keeps definded functions.
mocha
18 passing (20ms)npm install gulp
npm install gulp-jshint
gulpFull api doc: http://docs.mongodb.org/manual/reference/write-concern/
//Sample with concern
var concern = {w:1}; //Use primary node server- Add Aggregation framework queries.
- Add tests for mongo v3
- Stable version for common queries