Mongo-shell连接多个主机



是否有连接到两个mongo主机的方法。基本上,我们在两个独立的服务器中有两个mongo数据库。我们需要在第二个的基础上更新第一个中的数据。我们有办法做这个吗

是的,这是可能的,但mongo shell中的许多漂亮语法都不起作用,而且connect函数似乎不处理副本集,所以您需要自己找到主语法。

您可以使用connect功能建立到多个服务器的连接,例如:

var connection1 = connect("server1:27017")
var connection2 = connect("server2:27017")

但是您将无法使用useshow命令或rs对象。相反,您将需要使用成员函数和数据库命令。

例如,要列出数据库:

connection1.adminCommand("listDatabases")

获取数据库参考:

var mydb = connection1.getSiblingDB("mydbname");
var otherdb = connection2.getSiblingDB("myotherdbname");

查找操作等,然后看起来相当正常:

mydb.collection.find({field: value});
otherdb.collection.insert({newfield: value});

我认为使用mongo-shell是不可能做到这一点的。只有当Mongo的多个实例位于一个副本集中时,它才能与它们一起工作。

您应该使用Mongo驱动程序创建一个连接到您的Mongos的应用程序(例如,用于JS的mongoose或用于Java的MongoDB驱动程序(,然后根据需要更新您的数据。

最新更新