需要将重复的文档插入mongodb集合中,因此使用unique=True
和{
db.myCollection.create_index("timestamp", unique=True, dropDups=True)
但是,如果同一组文档被插入两次,第一次插入可以进行,但是第二次插入会抛出错误
^{pr2}$DuplicateKeyError: E11000 duplicate key error index: myDb.myCollection.$timestamp_1 dup key: { : 1385290560000000000 }
我很困惑为什么dropDups=True
不起作用。在
dropDups
只通过删除time of index creation处的重复文档来影响现有集合。但是,它不会在以后停止引发异常/错误。当您尝试插入同一文档两次时,如果您使用insert
,则始终会引发错误。您可以考虑使用upsert
(reference)和viafindAndModify
(reference))来配置为有条件地应用新文档,而不是引发异常。在如果可能,您可以考虑在本地保留时间戳的哈希值,以避免完全调用数据库(有时,您需要清除哈希表以防止无限增长)。在
或者,在插入数据之前不要启用索引(如果可能)。在
相关问题 更多 >
编程相关推荐