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(err, db) {
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(err, db) {
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(err, db) {
if (err) console.error(err);
assert(!err);
assert.equal(db.databaseName, 'foo');
assert(db instanceof mongodb.Db);
done();
});
#getDb()
w/ auth
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(err, db) {
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(err, db) {
assert(!err);
var collection = db.collection('bar');
assert(collection.collectionName !== undefined);
assert(collection.collectionName === 'bar');
done();
});
w/o auth
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(err, db) {
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(err, db) {
assert(!err);
var collection = db.collection('bar');
assert(collection.collectionName !== undefined);
assert(collection.collectionName === 'bar');
done();
});
#getCollection()
w/ auth
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(err, collection) {
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(err, collection) {
assert(!err);
collection.insert({foo: "bar"}, done);
});
w/o auth
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(err, collection) {
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(err, collection) {
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);