我是MongoDB的新手,所以我可能只是缺少一些简单的东西。远程服务器具有一个名为的MongoDB数据库DatabaseABC
,该数据库具有一个名为的集合Logger
。这个收藏是巨大的。我发现了解如何对它进行查询而不必在查询之间等待几分钟的最佳方法是在本地复制集合中最后一天的文档。
通过阅读,我应该能够使用cloneCollection并为其提供查询以对其进行过滤。我无法正常工作。该文件说,
您必须直接连接到mongod实例。
但我不明白那是什么意思。如何使用连接到本地数据库mongod
?mongod
似乎是启动数据库的一种方法,我可以做到,但是我不知道如何{ cloneCollection: "DatabaseABC.Logger", from: "mongoDevEtc.domain.net:27017", query: { TheTimestamp: "2015-05-13" } }
使用它。
我需要婴儿的脚步。假设我有一个名为的本地数据库test
。我有一个新的Microsoft Windows命令提示符打开,指向mongod.exe存在的bin目录。我要输入什么命令才能将2015年5月13日编写的所有日志从mongoDevEtc.domain.net:27017.DatabaseABC.Logger
移至我的本地集合127.0.0.1:21000.test.Logger
(请注意,该记录器集合在本地尚不存在)?
首先mongod
是MongoDB服务器。它了解许多不同的命令,但是您需要使用客户端来发出这些命令。MongoDB的标准客户端是名为的Mongo Shellmongo
。您可以直接从命令行调用它,然后开始发出一些命令。
现在,根据您的特定需求:该cloneCollection
命令允许您从远程服务器上的数据库中的一个集合复制到本地服务器上的另一数据库(即,客户端连接到的数据库)上的另一集合中。在Mongo Shell中,您可以使用发出此命令(就像其他任何“原始”命令一样)db.runCommand
。像这样:
> db.runCommand(
{ cloneCollection: "DatabaseABC.Logger",
from: "mongoDevEtc.domain.net:27017",
query: { TheTimestamp: "2015-05-13" }
}
)
请注意,如果您的远程数据库与本地数据库具有相同的名称,则可以改用Mongo Shell数据库方法db.cloneCollection
:
> db.cloneCollection("mongoDevEtc.domain.net:27017",
"Logger",
{ TheTimestamp: "2015-05-13" })¶
如下所示,它db.cloneCollection
是cloneCollection
数据库命令的简单包装:
> db.cloneCollection
function (from, collection, query) {
assert( isString(from) && from.length );
assert( isString(collection) && collection.length );
collection = this._name + "." + collection;
query = query || {};
return this._dbCommand( { cloneCollection:collection, from:from, query:query } );
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句