來源單據添加字段,如果不存在蒙戈記錄
{
"_id" : "12345",
"LastName" : "Smith",
"FirstName" : "Fred",
"ProfileCreated" : NumberLong(1447118831860),
"DropOut" : false,
}
新文件
{
"_id" : "12345",
"LastName" : "Smith",
"FirstName" : "Fred",
"ProfileCreated" : NumberLong(1447118831860),
"DropOut" : true,
"LatestConsultation" : false,
}
我有分享了很多相同的文檔的ID和字段,但兩個集合隨着時間的推移,新文檔將添加到其中的字段,或者具有新ID的全新文檔將被創建。
我想我知道如何處理使用$setOnInsert
和upsert = true
的新文檔,但我不確定如何最好地處理添加新字段。我需要在_id
與兩個新字段匹配的文檔中存在的文檔所需的行爲是將新字段添加到文檔,而不修改任何其他字段的值,即使它們已更改,如DropOut
值具有改變。我需要的結果文件是。
結果文檔
{
"_id" : "12345",
"LastName" : "Smith",
"FirstName" : "Fred",
"ProfileCreated" : NumberLong(1447118831860),
"DropOut" : false,
"LatestConsultation" : false,
}
什麼是實現這一目標的最佳和最performatic方法是什麼?此外,如果這可以以某種方式組合成一個單一的陳述,也包括在新的收藏中存在的文件,但不是在源集合中將是驚人的:-)
PS。我使用Pymongo,因此Pymongo示例會更好,但我可以翻譯一個mongo shell示例。