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