No use inserto.
Usar actualización con upsert=true
. La actualización buscará el documento que coincida con su consulta, luego modificará los campos que desee y luego, puede indicarle upsert:True si desea insertar si ningún documento coincide con su consulta.
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
Entonces, para tu ejemplo, podrías usar algo como esto:
db.collection.update(doc, doc, {upsert:true})