0
在我UPSERT要求,我想這兩個:使用改性劑或在UPSERT查詢提供一個對象
更新到位的對象,如果它的存在,又名
db.somecollection.update({x: 1}, {$inc: {x: 1}});
提供了新的對象,如果它不存在,又名
db.somecollection.update({x: 1}, {whole: 0, new: 'yata', object: 42});
有沒有辦法做到這一點?
問題是,只有當你已經在第一個地方提供了一個對象,而不是一個修飾符時,upsert才起作用。
編輯:我會更具體。
我想更新的形式
{_id: 12, a: 123, b: 234, c: 345}
的對象我的更新僅僅是一個的a
一個,b
或c
遞增1。如果對象不在基地,然後我想創建形式
{_id: 13, a: 1, b: 0, c: 0}
的對象,如果a
是我試圖增加該領域。現在
,如果我正確地閱讀手冊,我可以寫
db.somecollection.update({_id: 12}, {$inc: {a: 1}}, true);
這將很好地工作來更新我的a
場,但如果對象不存在,不會創建領域b
和c
。
請看到我的編輯。對不起,沒有問一個完整的問題在第一個地方;( – m09
@Mog見更新的答案。 – JohnnyHK
聰明,謝謝!似乎有限雖然。我不明白爲什麼而不是布爾作爲第三個參數,對象不是如果有人需要正常更新,則爲null。無論如何... – m09