我正在尝试编写一个连接到两个数据库的Mongo shell脚本,在一个文档中搜索一些文档,然后将找到的文档插入到另一个文档中。有点像这样:
#!/bin/sh
mongo --shell --nodb <<EOF
var db1 = new Mongo( '...' );
var db2 = new Mongo( '...' );
db1.collection.findOne( {...} ).forEach( function( r ) {
db2.collection.save( r )
});
诀窍是,两个数据库都是副本集,并且需要用户名和密码。
使用new Mongo()
连接到副本集并作为特定用户进行身份验证的语法是什么?我尝试使用Mongo URI(http://docs.mongodb.org/manual/reference/connection-string/),但这不起作用。
答案 0 :(得分:1)
我没有副本设置来测试它,但我认为你可以像这样使用Mongo()构造函数
conn = Mongo("replicasetname/host:port")
从那里我认为您需要手动使用
获取数据库 db = conn.getDB("myDatabase")
然后验证
db.auth(user, pass)
这完全取决于您使用的shell版本。我没有看到有关在最新版本中使用副本集连接的任何文档,因此我不知道它是否已被弃用或者不再被提及。希望这可以帮助。