Changing mongo database

丶灬走出姿态 提交于 2019-12-21 05:24:09

问题


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

});

回答1:


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

});


来源:https://stackoverflow.com/questions/30121148/changing-mongo-database

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!