mongowrap

A simple wrapper for getting mongodb connections, specialized for docker based mongo deployment

mongowrap

A simple wrapper for getting mongodb connections, specialized for docker based mongo deployment

TOC

#getConnection

should get config values from the environment.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', function(errdb) {
    if (err) console.error(err);
    assert(!err);
    assert.equal(db.databaseName, 'foo');
    assert(db instanceof mongodb.Db);
    done();
});

should allow you to use different environment keys.

var config = {
    url: "MONGO_ALT_URL",
    user: "MONGO_ALT_USER",
    password: "MONGO_ALT_PASSWORD"
};
process.env[config.url] = 'tcp://127.0.0.1:27017';
process.env[config.user] = 'admin';
process.env[config.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', function(errdb) {
    if (err) console.error(err);
    assert(!err);
    assert.equal(db.databaseName, 'foo');
    assert(db instanceof mongodb.Db);
    done();
});

should use provided values.

var config = {
    type: "hardcoded",
    url: "tcp://127.0.0.1:27017",
    user: "admin",
    password: "adminpass"
};
var mongo = mongowrap.getConnection(config);
mongo.getDb('foo', function(errdb) {
    if (err) console.error(err);
    assert(!err);
    assert.equal(db.databaseName, 'foo');
    assert(db instanceof mongodb.Db);
    done();
});

#getDb()

should get an instance of a mongodb Db object.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', function(errdb) {
    if (err) console.error(err);
    assert(!err);
    assert.equal(db.databaseName, 'foo');
    assert(db instanceof mongodb.Db);
    done();
});

should provide collection access.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', function(errdb) {
    assert(!err);
    var collection = db.collection('bar');
    assert(collection.collectionName !== undefined);
    assert(collection.collectionName === 'bar');
    done();
});

should get an instance of a mongodb Db object.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', false, function(errdb) {
    assert(!err);
    assert.equal(db.databaseName, 'foo');
    assert(db instanceof mongodb.Db);
    done();
});

should provide collection access.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
var mongo = mongowrap.getConnection();
mongo.getDb('foo', false, function(errdb) {
    assert(!err);
    var collection = db.collection('bar');
    assert(collection.collectionName !== undefined);
    assert(collection.collectionName === 'bar');
    done();
});

#getCollection()

should get an instance of a mongodb Collection object.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getCollection('foo', 'bar', function(errcollection) {
    assert(!err);
    assert(collection.collectionName !== undefined);
    assert(collection.collectionName === 'bar');
    done();
});

should be able to insert a record.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27017';
process.env[mongowrap.DEFAULT_CONF.user] = 'admin';
process.env[mongowrap.DEFAULT_CONF.password] = 'adminpass';
var mongo = mongowrap.getConnection();
mongo.getCollection('foo', 'bar', function(errcollection) {
    assert(!err);
    collection.insert({foo: "bar"}, done);
});

should get an instance of a mongodb Collection object.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
var mongo = mongowrap.getConnection();
mongo.getCollection('foo', 'bar', false, function(errcollection) {
    assert(!err);
    assert(collection.collectionName !== undefined);
    assert(collection.collectionName === 'bar');
    done();
});

should be able to insert a record.

process.env[mongowrap.DEFAULT_CONF.url] = 'tcp://127.0.0.1:27018';
var mongo = mongowrap.getConnection();
mongo.getCollection('foo', 'bar', false, function(errcollection) {
    assert(!err);
    collection.insert({foo: "bar"}, done);
});

#ensureObjectId()

should convert a valid string to an ObjectId.

var newId = new ObjectId();
var ensured = mongo.ensureObjectId(newId.toHexString());
assert(newId.equals(ensured));

should return the same ObjectId if it already is an ObjectId instance.

var newId = new ObjectId();
var ensured = mongo.ensureObjectId(newId);
assert(newId === ensured);

should return null if the string passed is an invalid ObjectId string.

var ensured = mongo.ensureObjectId('foo');
assert(ensured === null);