Não use inserção.
Use atualização com
upsert=true
. A atualização procurará o documento que corresponde à sua consulta, modificará os campos desejados e, em seguida, você poderá informar upsert:True se desejar inserir se nenhum documento corresponder à sua consulta. db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Então, para o seu exemplo, você poderia usar algo assim:
db.collection.update(doc, doc, {upsert:true})