1
比方說我的測試數據是更新多條記錄,如果不存在插入
db.multiArr.insert({"ID" : "fruit1","Keys" : "apple"})
db.multiArr.insert({"ID" : "fruit2","Keys" : "carrot"})
db.multiArr.find({'ID': {$in: ['fruit1', 'fruit2']}})
,如果我想更新或使用
db.multiArr.update(
{'ID': "fruit12"},
{
'ID': "fruit12"
"$push": {
"Keys": "tomato"
}
},
upsert=True
)
我想更新插入一個ID,我可以做到這一點或插入多個記錄,我知道下面的查詢插入只有1行
db.multiArr.update(
{"ID": {"$in: ["fruit123", "fruit1234"]}},
{"ID": "---", "Keys": "tomato"},
upsert=true
)
你問你是否以這個數組開頭'[「fruit123」,「fruit1234」]'那麼如何用''tomato'插入/插入多個文檔'總是作爲'Keys'的值?你意識到你基本上用''ID「:」---「''''來避免'$ in'和upsert出現在第一位的錯誤,這是不是你?我不確定我看到「實用」實用程序。 –
事情是我想更新集合中的現有記錄,如果ID存在或者插入記錄與新的ID,而不是循環每個ID –
所以你的意圖是「創建」與提供的「ID」來自陣列的值。是?注意自「'ID」:「---」',並且整個更新文檔以覆蓋提供的值的方式指定。我們理解upsert部分,這只是你打算採取的其他行動並不清楚。 –