我们需要在很短的时间内对生产数据库进行分片,现在我们决定对散列进行分片(_id) - 但是,我们已经看到不可能在这样的索引上创建唯一约束。
是否有可能以任何其他方式确保我们永远不会使用相同的_id插入重复文档?
我们考虑过添加2个索引,1为分片键(散列(_id)),第二个作为默认的唯一_id索引 - 但我们不确定这是否可行/将解决我们的问题。
提前致谢!
答案 0 :(得分:1)
好的,所以我们的解决方案是对_id进行分片(每个Mongod / shard实例都有一个强制唯一索引)并添加一个我们分片的散列(_id)索引。这可确保所有项目都是唯一的。