gpt4 book ai didi

mongodb - _id 上的重复文档(在 mongo 中)

转载 作者:可可西里 更新时间:2023-11-01 09:13:18 26 4
gpt4 key购买 nike

我有一个分片的 mongo 集合,其中包含超过 150 万个文档。我使用 _id 列作为分片键,该列中的值是整数(而不是 ObjectId)。

我使用 Perl 驱动程序(插入、更新、删除、保存)和 mongoimport 对此集合进行了大量写入操作。

我的问题是,不知何故,我在同一个 _id 上有重复的文档。根据我的阅读,这应该是不可能的。

我已经删除了重复项,但其他人仍然出现。

您是否知道它们从何而来,或者我应该从什么着手?(另外,我试图在一个较小的测试集合上复制它,但无论我执行什么写操作,都没有插入重复项)。

最佳答案

这实际上不是 Perl 驱动程序的问题.. 它与分片的特性有关。 MongoDB 只能在创建时强制位于单个分片上的文档之间的唯一性,因此默认索引不需要唯一性。

MongoDB: Configuring Sharding文档中特别提到:

  • 对集合进行分片时,必须指定分片键。如果集合中有数据,mongo 将需要预先创建一个索引(它加快了分块过程);否则,系统会自动为您创建一个索引。

  • 您可以使用 {unique: true} 选项来确保基础索引强制执行唯一性,只要唯一性索引是分片键的前缀即可。

  • 如果不使用“unique: true”选项,则分片键不必是唯一的。

关于mongodb - _id 上的重复文档(在 mongo 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11241819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com