sh.moveChunk()
定义
sh.moveChunk(namespace, query, destination)
将包含
query
数据块的文档的数据段移动到destination
分分片。sh.moveChunk()
提供了moveChunk
数据库命令的包装器。重要
在大多数情况下,允许负载均衡器自动迁移数据段,并避免直接调用
sh.moveChunk()
。重要
mongosh 方法
本页面提供
mongosh
方法的相关信息。这不是数据库命令或特定语言驱动程序(例如 Node.js)的相关文档。有关数据库命令,请参阅
moveChunk
命令。如需了解 MongoDB API 驱动程序,请参阅特定语言的 MongoDB 驱动程序文档。
sh.moveChunk()
采用以下参数:Parameter类型说明namespace
字符串
包含要迁移的数据块的分片collection的命名空间。
query
文档
选择要移动的数据块的分片键的等值匹配。
destination
字符串
要移动的分片的名称。
默认,如果数据段中的数据块数据块大于配置的数据段数据块除以平均文档大小所得结果的2倍,则MongoDB无法移动该数据段。
moveChunk
命令可以指定forceJumbo选项,以允许手动迁移太大而无法移动的数据段,无论是否带有jumbo标签。 有关详细信息,请参阅moveChunk命令。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
重要
M 0 、M 2和 M 5集群不支持此命令。 有关更多信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
例子
给定records
数据库中的people
collection,以下操作查找包含zipcode
字段设置为53187
的文档的数据块,然后将该数据块移动到名为shard0019
的分片:
sh.moveChunk("records.people", { zipcode: "53187" }, "shard0019")