gpt4 book ai didi

mongodb - Mongo : db. cloneCollection 在 2.4.6 中不起作用?

转载 作者:可可西里 更新时间:2023-11-01 10:04:41 25 4
gpt4 key购买 nike

我正在尝试将一个集合从一个 Mongo 主机克隆到另一个主机:

我在两台主机上安装了两个 mongo 实例 v.2.4.6:host1 和 host2(host1 和 host2 实际上是 IP,但已替换为名称以简化问题)。两台主机都在同一个网络中,我可以使用以下方法从第一台服务器成功打开其他服务器的 mongo 控制台:

host1 上:

mongo --host host2

但是当我在第一个服务器的 mongo shell 中做的时候:

host1 上:

db.cloneCollection("host2:27017", "my_db.my_collection")

输出是:

{ "ok" : 1 }

但是 my_db 数据库没有在 host1 上创建。我试图创建空数据库,但也没有复制该集合。我试图在其中创建空集合,但未复制集合项。

注意:host2 上的 my_db.my_collection 不为空。仔细检查过。

伙计们,你能检查一下 db.cloneCollection() 在 mongo 2.4.6 上是否适用吗?如果是这样 - 也许我缺少一些先决条件?

最佳答案

Windows 版 Mongodb,2.4.6 版

第一个带有默认参数的 mongod:port -> 27017,dbpath -> c:\data\db
第二个带有参数的 mongod:port -> 27018,dbpath -> c:\data\db1

登录到第二个mongod。使用 test 数据库。执行:

db.cloneCollection("localhost:27017","db.test.so000")

未克隆。然后执行:

db.cloneCollection("localhost:27017","so000")

它被克隆了。因此,在这种情况下,建议不要使用集合的完整路径。

已更新

刚刚调查了一些文档:http://docs.mongodb.org/manual/reference/command/cloneCollection/#dbcmd.cloneCollection
如果你想使用 db 前缀,你应该这样运行克隆:

db.runCommand({cloneCollection: "test.so000", from: "localhost:27017"})

它也会克隆集合so000。即使第二台服务器上不存在 db test,它也会创建 db。

关于mongodb - Mongo : db. cloneCollection 在 2.4.6 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com