node package manager

mniam

Yet another mongodb facade.

mniam

Yet another mongodb native driver facade. Takes care of:

  • mongo URI parsing
  • opening and closing DB connections
  • opening collections

Install by running

npm install mniam

Connect to database mniam-test and create friends collection with index on name field.

var db = database('mongodb://localhost/mniam-test'),
  friends = db.collection({
    name: 'friends',
    indexes: [[{ name: 1 }]]
  });

Mniam is using MongoClient to establish the connection: full mongo database URLs are supported. The database function also takes a hash of options divided into db/server/replset/mongos allowing you to tweak options not directly supported by the unified url string format.

var db = database('mongodb://localhost/mniam-test', {
  db: {
    w: -1
  },
  server: {
    ssl: true
  }
})

Add a new documents:

friends.save({
  name: 'Alice',
  age: 14,
}, function(erritem) {
console.log('Item id:', item._id);
});

Update a document:

friends.findAndModify(item._id, {
  $set: { age: 15 }
}, function(erritem) {
  console.log('Alice is now:', item.age);
})

Remove a document:

friends.remove({ name: 'Alice' }, function(err) {
  // last collection closed closes DB connection 
  friends.close();
});

Use query, fields and options to create and configure cursor. Iterate over the results of the query using toArray, eachSeries, eachLimit methods.

  • toArray - converts query results into array
friends.query({ age: { $gt: 21 } }).toArray(function(errarr) {
  console.log('My friends over 21 years old', arr);
});
  • eachSeries - calls onItem sequentially for all results
friends.query().fields({ name: 1 }).eachSeries(function onItem(itemfn) {
  console.log('Name:', item.name);
  fn();
}, function done(err) {
  console.log('All friends listed.');
});
  • eachLimit - iterates over all results calling onItem in parallel, but no more than limit at a time
friends.query().options({ sort: { age: 1 } }).eachLimit(4, function onItem(itemfn) {
  console.log('Friend', item);
  fn();
}, function done(err) {
  console.log('All friends listed.');
});
  • collection.geonear
  • collection.findOne
  • collection.update

MIT