更改mongo数据库

Chr*_*our 4 mongodb node.js node-mongodb-native

我想使用节点的本机2.0 mongodb驱动程序查询我的副本集中的集合.我可以连接和验证admin数据库,但如何切换数据库来查询我感兴趣的集合?

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();

});
Run Code Online (Sandbox Code Playgroud)

the*_*gre 23

来自MongoDB 2.0.0驱动程序文档

间接反对另一个数据库

在某些情况下,您可能必须针对另一个数据库进行身份验证,而不是要连接到的数据库.这称为委托身份验证.假设您希望连接到foo数据库,但用户是在admin数据库中定义的.让我们来看看我们将如何实现这一目标.

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();

});
Run Code Online (Sandbox Code Playgroud)