simplified mongodb-native api with middleware
npm install mdoq-mongodbmongodb native middleware for mdoq.
npm install mdoq-mongodb
To specify a database, simply use() the mdoq-mongodb middleware and specify a url. Credentials, port (27015), and host (localhost) are optional.
var db = mdoq.use(require('mdoq-mongodb')).use('mongodb://localhost/test-db');
Once your mdoq context is using a database, you can use() a specific collection.
var users = db.use('/users');
Since mdoq implements an http style api, mongodb methods insert(), find(), update(), and remove() are exposed as post(), get(), put(), and del().
Queries and other operations are only executed once a callback is provided. In order to find and modify an object you can chain operations.
users.get({age: {$gte: 21}).update({canDrink: true}, function(err, res) {
console.log(res);
});
All results will be returned unless a query is called with each(). This prevents buffering large sets of results, as only one result is pulled at a time.
var log = fs.createWriteStream('./log.json');
users.all().count().each(function(err, user, total) {
log.write(JSON.stringify(user));
});
All mongodb query objects are supported by passing an object as an argument to get().
users.get({last_name: 'Smith'}, function(err, res) {
console.log(res);
});
Calling post() will insert a document into a collection.
users.post({name: 'Jimbo Jones'}, function(err, res) {
console.log(res);
});
Updating a document requires a query and a modifer object containing modifier operations. You can also supply a regular object to replace the existing document.
users.get({name: 'Bob'}).put({$inc: {views: 1}}, function(err, res) {
console.log(res);
});
Delete a document by simply calling del() with a query to match all the documents to be deleted.
user.del({name: 'Bob'}, function(err, res) {
console.log(res);
});
To limit(), sort(), count(), or otherwise modify the documents in an operation, see the mdoq api.