Skip to content

ericchaves/mongo-col

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mongo-col Build Status

mongoDB collection wrapper

Status: production ready

Example

With mongo-db native

var Db = require('mongodb').Db,
    Server = require('mongodb').Server

var db = new Db('integration_tests', 
    new Server("127.0.0.1", 27017, {
       auto_reconnect: false, 
       poolSize: 4
    }))

db.open(function(err, db) {
    db.collection("CollectionName", function(err, collection) {
        collection.insert({hello:'world_no_safe'}, function () {
            collection.findOne({hello:'world_no_safe'}, function(err, item) {
                assert.equal(null, err)
                assert.equal('world_no_safe', item.hello)
                db.close()
            })
        })
    })
})

With mongo-col

var collection = require("mongo-col"),
    CollectionName = collection("CollectionName", "integration_tests")

CollectionName.insert({ hello: "world_no_safe"}, function () {
    CollectionName.findOne({ hello: "world_no_safe"}, function (err, item) {
        assert.equal(null, err)
        assert.equal('world_no_safe', item.hello)
        CollectionName.collection.db.close()
    })
})

Motivation

Setting up a mongodb database connection requires too much callback soup, remove it.

Documentation

collection takes a collection name and returns a collection object. This collection object has all the mongodb collection methods and sets up a database connection internally

See the MongoDB collection API

var collection = require("mongo-col"),
    Users = collection("Users", "optionalDatabaseName")

Users.insert({
    name: "foo",
    password: "bar"
})

You can optionally pass in a databaseName as a string or an instance of a mongodb database object.

There is also an optional async API

require("mongo-col")("Users", function (collection) {
    ...  
})
$ make bench

global native benchmark took  9332 53
mongoose benchmark took  22710 121
collection benchmark took  9851 56
mongoskin benchmark took  10817 59

Installation

npm install mongo-col

Tests

make test

Contributors

  • Raynos

MIT Licenced

About

mongodb collection wrapper

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published