在本页面
所有的updateOne()
,removeOne()
以及deleteOne()
操作的分片集合指定或选项必须包括
片键或将在查询规范场。
,,以及
在sharded集合中指定或不包含
shard键或字段的操作将返回错误。multi: false
justOne
_id
updateOne()
removeOne()
deleteOne()
multi: false
justOne
_id
MongoDB不支持跨分片的唯一索引,除非唯一索引包含完整的分片键作为索引前缀。在这种情况下,MongoDB将在整个键而不是单个字段上强制唯一性。
看到
在任意字段上的唯一约束 是一种替代方法。
如果现有集合的大小未超过特定限制,则只能对其进行分片。可以基于所有分片键值的平均大小以及配置的块大小来估计这些限制。
重要
这些限制仅适用于初始分片操作。成功启用分片后,分片集合可以增长到任何大小。
使用以下公式计算理论最大收集大小。
如果maxCollectionSize
小于或接近等于目标集合,则增加块大小以确保成功进行初始分片。如果对计算结果是否过于“接近”目标集合大小存有疑问,则最好增加块大小。
成功进行初始分片后,您可以根据需要减小块大小。如果以后减小块大小,则所有块可能都需要花费一些时间才能拆分为新的大小。请参阅 修改分片群集中的块大小以获取有关修改块大小的说明。
下表使用上述公式说明了最大的收集规模:
分片键值的平均大小 | 512字节 | 256字节 | 128字节 | 64字节 |
---|---|---|---|---|
最大分割数 | 32,768 | 65,536 | 131,072 | 262,144 |
最大收集大小(64 MB块大小) | 1 TB | 2 TB | 4 TB | 8 TB |
最大收集大小(128 MB块大小) | 2 TB | 4 TB | 8 TB | 16 TB |
最大收集大小(256 MB块大小) | 4 TB | 8 TB | 16 TB | 32 TB |