インサートは使用しないでください。
upsert=true
で更新を使用する 。 Updateは、クエリに一致するドキュメントを検索し、必要なフィールドを変更します。次に、クエリに一致するドキュメントがない場合に挿入する場合は、upsert:Trueを指定できます。
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
したがって、あなたの例では、次のようなものを使用できます:
db.collection.update(doc, doc, {upsert:true})