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...