MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Pymongo ottiene ID inseriti anche con errore di chiave duplicata

Sfortunatamente, non nel modo in cui l'hai fatto con gli attuali driver pymongo. Come hai scoperto, se ricevi errori nel tuo insert_many() genererà un'eccezione e il dettaglio dell'eccezione non contiene i dettagli dell'inserted_id s.

Contiene i dettagli delle chiavi non riuscite (in e.details['writeErrors'][]['keyValue'] ) in modo da poter provare a lavorare a ritroso da quello dall'elenco dei prodotti originali.

L'altra soluzione alternativa consiste nell'usare insert_one() in un ciclo con una prova ... tranne e controlla ogni inserto. So che questo è meno efficiente ma è una soluzione alternativa...