对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

在分片集群中分割数据段

MongoDB会自动拆分数据块,以确保数据在集群中公平分布,并且AutoMerger会自动合并驻留在同一分片上的相邻数据块。

要手动分割数据段,请使用带有 middlefind 字段的 split 命令。mongosh 提供了辅助方法 sh.splitFind()sh.splitAt()

splitFind() 将包含与该查询匹配的第一个返回文档的数据段分割成两个大小相等的数据段。您必须将分片集合的完整命名空间(即“<database>.<collection>”)指定为 splitFind()splitFind() 中的查询不需要使用分片键,尽管这样做几乎总是有意义的。

例子

以下命令分割那些包含 records 数据库 people 集合 zipcode 字段 63109 值的数据段:

sh.splitFind( "records.people", { "zipcode": "63109" } )

使用 splitAt() 将数据段分成两部分,使用查询的文档作为新数据段的下限:

例子

以下命令分割那些包含 records 数据库 people 集合 zipcode 字段 63109 值的数据段。

sh.splitAt( "records.people", { "zipcode": "63109" } )

注意

splitAt() 不一定将数据段分割为两个大小相等的数据段。分割发生在与查询匹配的文档的位置,无论该文档位于数据段中的什么位置。

提示