2013-07-22 3 views
0

Après la mise à niveau MongoEngine de 0.7.9 à 0.8.3, toute tentative d'enregistrer les documents existants dans les résultats de la collecte dans un NotUniqueError (user collection montrée dans l'exemple):MongoEngine 0.8.3 NotUniqueError sur le champ _id

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

-je obtenir la même erreur si je crée un nouveau document et l'enregistrer plus d'une fois:

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

Mongo par défaut crée un index sur _id qui ne peut être enlevé, et je n'ai pas d'autres indices qui utilisent _id. La plupart des problèmes similaires à ce que j'ai vu ont été sur des index en double qui ne sont pas _id et peuvent être supprimés, mais c'est vraiment étrange. Je ne fais rien de bizarre avec le champ _id, laissant Mongo le générer seul.

Des idées sur ce qui pourrait être à l'origine de cette situation?

Merci!

+0

Je suggérerais de signaler un problème. https://github.com/MongoEngine/mongoengine/issues – WiredPrairie

+0

J'ai créé ce problème, au cas où quelqu'un trouverait cela et veut un lien vers un commentaire de développeur: https://github.com/MongoEngine/mongoengine/issues/411 – mgoffin

Répondre

0

Il y avait une fonction d'enregistrement personnalisée qui n'avait pas été migrée à l'aide des nouveaux arguments save(), donc l'un d'entre eux a été forcé par force_insert à évaluer à vrai.

Donc dumb ...

Questions connexes