如何更新集合中的嵌入文檔或插入文檔如果不存在單個查詢? 假設我有如下文檔。 「記錄」是一組嵌入式文檔。MongoDB,如何更新集合中的嵌入式文檔或插入不存在的文檔?
{
id: "1",
records: [
{userId:"5", userData: "..."},
{userId:"12", userData: "..."},
{userId:"27", userData: "..."}
]
}
我知道如何在單獨的查詢中插入或更新「記錄」。但是,我可以將這些查詢結合起來,以便它與MySQL的ON DUPLICATE KEY UPDATE類似嗎?我想避免執行另一個查詢來查明嵌入式文檔是否存在。
db.myCollection.update(
{id:"1", records.userId:"12"},
{records.$.userData:{"... new data ..."}}
);
db.myCollection.update(
{id:"1"},
{records:
{$push:
{userId: "33", userData: {"... new data ..."}}
}
}
);
感謝
嗯,我確實有一個答案,但堆棧溢出決定將其轉換爲一個註釋。 –
Hi Na.z.Camp,你是否仍然有指向這個'評論'的鏈接? – Jaepil
http://stackoverflow.com/q/10277174 – JohnnyHK