MongoDb 分片和唯一约束

MongoDb sharding and Unique Constraints

实现唯一性和分片的最佳解决方法是什么?例如,我们想根据用户为自己选择的唯一 usernameuser 集合进行分片,并且它是不可变的

我认为最好的解决方案是散列阴影但不幸的是我们不能强制散列索引的唯一性

那么远程分片好吗?有推荐的解决方案吗?

如果您确实需要此字段(用户名)的完全唯一性 - 您可以将其作为 "normal"(单字段 - ascending/descending)分片键。

在这种情况下,每个文档将是 "individual",因为它根本没有批量要求。

然而,它会使你的索引更大,而通常散列分片会做(是的,你不能确保唯一性,但除非你有一个非常特殊的情况 - 这应该不是一个真正的问题)

你可能想看看这个讨论: Mongodb performance difference between Hash and Ascending indices (Any reason not to use hash in a not ordered field?)