【问题标题】:MongoEngine 0.8.3 NotUniqueError on _id field_id 字段上的 MongoEngine 0.8.3 NotUniqueError
【发布时间】:2013-07-22 23:40:39
【问题描述】:

将 MongoEngine 从 0.7.9 升级到 0.8.3 后,任何将任何现有文档保存在任何集合中的尝试都会导致 NotUniqueError(示例中显示user 集合):

Tried to save duplicate unique keys (E11000 duplicate key error index: foo.user.$_id_ dup key: { : ObjectId('xxxxxx') })

如果我创建一个新文档并多次保存它,我会收到同样的错误:

a = Foo()
a.save()
a.save() # results in duplicate error

默认情况下,Mongo 在_id 上创建一个无法删除的索引,并且我没有其他使用_id 的索引。我见过的大多数与此类似的问题都出现在不是_id 并且可以删除的重复索引上,但这真的很奇怪。我对 _id 字段没有做任何奇怪的事情,只是让 Mongo 自己生成它。

关于什么可能导致这种情况发生的任何想法?

谢谢!

【问题讨论】:

标签: python mongodb mongoengine


【解决方案1】:

有一个自定义保存函数尚未迁移到使用新的 save() 参数,因此其中一个导致 force_insert 评估为真。

太笨了……

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    相关资源
    最近更新 更多