未分片集合
从MongoDB 8.0开始,您可以使用 unshardCollection
命令对分分片的集合取消分片。 当您对集合取消分片时, MongoDB会将集合数据移动到单个分片片上,并更新元数据以反映取消分片状态。
命令语法
要对集合取消分片,请使用unshardCollection
命令:
db.adminCommand({ unshardCollection : "<database>.<collection>", toShard : "<recipient shard ID>" })
用例
在以下情况下,用户可以对集合取消分片:
您可以存储集合完全存储在单个分片上。
集合需要资源隔离性,如果集合位于单个分片片上,则可以更好地支持访问权限模式。 要满足对分分片的集合的相同要求,请参阅区域分片。
该集合以前分片的进行分片,但不再需要进行分分片的。
开始体验
访问控制
如果您的部署启用了访问权限控制,则enableSharding
角色会授予您运行unshardCollection
命令的访问权限。
详情
未分片集合的数据仅驻留在一个分片片上,并且分片分片键将被删除。 手动取消分片的集合的行为与新创建的从未分片的分片的相同。
您可以使用可选的toShard
字段指定目标分片。 如果未指定目标分片, 分片MongoDB自动选择分片量最少的分片。