Infelizmente, não da maneira que você fez com os drivers atuais do pymongo. Como você descobriu, se você receber erros em seu
insert_many()
ele lançará uma exceção e o detalhe da exceção não contém detalhes do inserted_id
s. Ele contém detalhes das chaves que falharam (em
e.details['writeErrors'][]['keyValue']
) para que você possa tentar trabalhar de trás para frente a partir da sua lista de produtos original. Sua outra solução é usar
insert_one()
em um loop com um try ... exceto e verifique cada inserção. Eu sei que isso é menos eficiente, mas é uma solução alternativa ...