簡體   English   中英

如何在mongodb中僅更新新數據或更改的值?

[英]How can I update only new data or changed value in mongodb?

Update命令使用提供的Json更新密鑰。 我只想更新數據庫中不存在的對象和更改的值。 我怎樣才能做到這一點?

"data" : [ 
    {
        "_id" : "5bb6253d861d057857ec3ff0",
        "name" : "C"
    }, 
    {
        "_id" : "5bb625fc861d057857ec3ff1",
        "name" : "B"
    }, 
    {
        "_id" : "5bb625fe861d057857ec3ff2",
        "name" : "A"
    }
]

我的數據是這樣的。 因此,如果只有2個新對象的json中有一個數組對象,則它應將2個數據與3個數據一起插入。

更新數據庫中不存在的對象:

使用upsert :當沒有文檔符合查詢條件時,Upsert將創建一個新文檔。 或者,您可以在查詢中添加空檢查,例如{user_id:null}。 這將允許更新數據庫中不存在用戶記錄的數據。

更新更改的值:

這可以通過維護存儲last_updated_at的密鑰來實現。 如果last_updated_at值與previous_updatede_at不匹配,則可以修改該記錄

您可以實施MongoDB 3.6中引入的變更流,您可以從中接收數據的實時變更。 您只能接收通過“更新”操作過濾的已更改數據。 此外,您還可以通過“插入”操作過濾新插入的數據。 請參閱更改流

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM