I want to query a collection in my replica set using the native 2.0 mongodb driver for node. I can connect and authenticated against the admin
database but how do I switch databases to query the collection I'm interested in?
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = "mongodb://user:pass@db1,db2,db3/admin";
MongoClient.connect(url, function(err, db) {
console.log("Connected correctly to server");
console.log("Current database", db.databaseName);
// switch context to database foo
// foo.bar.findOne();
db.close();
});
From MongoDB 2.0.0 Driver docs
Indirectly Against Another Database
In some cases you might have to authenticate against another database than the one you intend to connect to. This is referred to as delegated authentication. Say you wish to connect to the foo database but the user is defined in the admin database. Let’s look at how we would accomplish this.
var mongodb = require('mongodb');
var MongoClient = mongodb.MongoClient;
var url = "mongodb://user:pass@db1,db2,db3/foo?authSource=admin";
MongoClient.connect(url, function(err, db) {
console.log("Connected correctly to server");
console.log("Current database", db.databaseName);
//db==foo
db.close();
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With