MongoEngine 0.8.3 _id字段上的NotUniqueError

时间:2013-07-22 23:40:39

标签: python mongodb mongoengine

将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自己生成它。

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

谢谢!

1 个答案:

答案 0 :(得分:0)

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

太笨了......