db.cloneCollection()

在本页面

Definition

  • db. cloneCollection(* from collection query *)
ParameterTypeDescription
fromstring要克隆的服务器的地址。
collectionstring您要复制的 MongoDB 实例中的集合。 db.cloneCollection()只会从* database *中复制与当前数据库同名的具有此名称的集合到远程 MongoDB 实例。


如果要从其他数据库名称复制集合,则必须直接使用cloneCollection
| query |文档|可选。一个标准的查询文档,它限制在db.cloneCollection()操作中复制的文档。 find()可用的所有query selectors都在这里可用。

Behavior

mongos

mongos不支持db.cloneCollection()

Namespace

复制指定的集合时,db.cloneCollection()from服务器中使用与目标数据库相同的数据库名称。如果该集合在源数据库中不存在,则db.cloneCollection()失败。

在版本 3.0 中进行了更改:如果给定的collection在目标mongod实例中已经存在,则db.cloneCollection()返回错误。

Authorization

如果from服务器启用了authorization,则不能使用db.cloneCollection()

FeatureCompatibilityVersion

您无法在具有featureCompatibilityVersion (FCV) 3.6 的mongod实例与 MongoDB 版本 3.4 和更早的mongod实例之间复制数据。

For example:

Instance 1Instance 2
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.6 的 3.6 版mongod可以复制数据。
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.4 的 3.6 版mongod可以复制数据。
具有 FCV 3.6 的 3.6 版mongod具有 FCV 3.4 的 3.4 版mongod无法复制数据。实例 2 必须是 MongoDB 3.6 版
具有 FCV 3.4 的 3.6 版mongod具有 FCV 3.4 的 3.4 版mongod可以复制数据。
具有 FCV 3.4 的 3.6 版mongod版本 3.2 mongod可以复制数据。

复制数据的操作包括:

Example

use users
db.cloneCollection('mongodb.example.net:27017', 'profiles',
                    { 'active' : true } )

此操作将profiles集合从mongodb.example.net的服务器上users数据库复制到本地服务器的users数据库中。该操作仅复制满足查询{ 'active' : true }的文档。