陣列我的文檔集的「消息」數組字段:條件推到MongoDB中
{
"id": 2,
"messages": [
{
"id": 1,
"text": "foo"
},
{
"id": 2,
"text": "bar"
}
]
}
我想更新文件:添加一個新的「消息」文件的「消息」字段只有當「消息」不包含具有這種id的文檔時。例如:
{
"id": 2,
"text": "bllllllll"
}
不應該添加
{
"id": 3,
"text": "foo"
}
應加
我該怎麼辦有條件追加?我知道我可以通過$ elemMatch操作符在查找部分中過濾文檔,但它只能用於更新,使用Upsert它將不再起作用。
謝謝,它的工作原理,但條件是在更新的「查詢」(過濾器)部分。如果我傳遞upsert:true,我將在消息字段中獲取帶有此消息的新文檔,我希望條件位於「更新」(修改)部分,而「查詢」(過濾器)只包含_id條件。可能嗎? –
我並沒有完全明白你想說什麼。你可以詳細說明你的代碼嗎? –