/easymongo

The easiest MongoDB API

Primary LanguageJavaScriptMIT LicenseMIT

easymongo

NPM version Build status Test coverage Dependency status devDependency status

This is a small tweaks for the native MongoDB driver.

Easymongo v5 now support only Node.js v4. For previous version you can use the older easymongo.

Installation

$ npm i --save easymongo

Examples

const Client = require('easymongo');

let mongo = new Client({dbname: 'test'});
let users = mongo.collection('users');

let data = {name: 'Alexey', surname: 'Simonenko', url: 'http://simonenko.su'};

users.save(data).then(function(res) {
  // Returns a new document (array).
  console.log(res);
});

users.find({name: 'Alexey'}, {limit: 2}).then(function(res) {
  // Always return array of documents.
  console.log(res);
});

users.findById('4e4e1638c85e808431000003').then(function(res) {
  // Returns a document (object). If error occurs then will return false.
  console.log(res);
});

users.count({name: 'Alexey'}).then(function(res) {
  // Amount (int). If error occurs then will return zero.
  console.log(res);
});

users.remove({name: 'Alexey'}).then(function(res) {
  // Returns a result of operation (boolean). If error occurs then will return false.
  console.log(res);
});

users.removeById('4e4e1638c85e808431000003').then(function(res) {
  // Returns a result of operation (boolean). If error occurs then will return false.
  console.log(res);
});

API

Client class

Constructor

Arguments:

  • server (string || object) — connection url to MongoDB or object with host, port and dbname
  • options (object) — optional options for insert command

Methods

  • collection(name) — returns a new instance of the easymongo Collection class
  • open(name) — returns a Promise which resolves an object of MongoDB Collection
  • close() — close the db connection

Collection class

Methods

  • find([params][, options])
  • findOne([params][, options])
  • findById(oid[, fields])
  • save(data)
  • update(params, data)
  • remove([params])
  • removeById(oid)
  • count([params])

All methods return a Promise.

Possible find options:

  • limit — to specify the maximum number of documents (more info)
  • skip — to control where MongoDB begins return results (more info)
  • sort — to control the order of matching documents (more info)
  • fields — specify array of fields in returned documents, e.g. ["name", "url"]

Flow control

You can use easymongo with co for promise/generator based flow-control.

Author

License

The MIT License, see the included license.md file.