cloneCollection

在本页面

Definition

{ cloneCollection: "<namespace>",
  from: "<hostname>",
  query: { <query> },
  writeConcern: { <write concern> },
  bypassDocumentValidation: <boolean>
}

cloneCollection具有以下字段:

Field Type Description
cloneCollection string 要复制的收藏集的namespace。名称空间是数据库名称和集合名称的组合。
from string 要克隆的服务器的地址。
query document 可选的。一个查询,用于过滤源集合中cloneCollection将复制到当前数据库的文档。
writeConcern document 可选的。表示该操作的write concern的文档。省略使用默认的写关注。
bypassDocumentValidation boolean 可选的。使cloneCollection在操作过程中绕过文档验证。这使您可以插入不符合验证要求的文档。


版本 3.2 中的新功能。

mongo Shell 提供方法db.cloneCollection()作为cloneCollection命令的包装器。

Behavior

mongos

mongos不支持cloneCollection

Authorization

如果从服务器启用了authorization,则不能使用cloneCollection

Namespace

在版本 3.0 中更改。

如果给定的namespace在目标mongod实例中已经存在,则cloneCollection将返回错误。

FeatureCompatibilityVersion

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

For example:

Instance 1 Instance 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

db.getSiblingDB("users").runCommand( { cloneCollection: "users.profiles",
                 from: "mongodb.example.net:27017",
                 query: { 'active' : true }
               } )

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

首页