On this page
db.cloneCollection()
在本页面
Definition
db.
cloneCollection
(* from , collection , query *)- 直接在 MongoDB 实例之间复制数据。 db.cloneCollection()方法包装cloneCollection命令并接受以下参数:
Parameter | Type | Description |
---|---|---|
from |
string | 要克隆的服务器的地址。 |
collection |
string | 您要复制的 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
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
use users
db.cloneCollection('mongodb.example.net:27017', 'profiles',
{ 'active' : true } )
此操作将profiles
集合从mongodb.example.net
的服务器上users
数据库复制到本地服务器的users
数据库中。该操作仅复制满足查询{ 'active' : true }
的文档。