MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pymongo obtient les identifiants insérés même avec une erreur de clé en double

Malheureusement, pas comme vous l'avez fait avec les pilotes pymongo actuels. Comme vous l'avez constaté, si vous obtenez des erreurs dans votre insert_many() il lèvera une exception et le détail de l'exception ne contient pas les détails de inserted_id s.

Il contient les détails des clés qui ont échoué (dans e.details['writeErrors'][]['keyValue'] ) afin que vous puissiez essayer de revenir en arrière à partir de votre liste de produits d'origine.

Votre autre solution consiste à utiliser insert_one() dans une boucle avec un try... sauf et check chaque insert. Je sais que c'est moins efficace mais c'est une solution de contournement...