簡體   English   中英

如何將現有的子文檔推送到 MongoDB 中的嵌入式數組中?

[英]How to push an existing sub-document into an embedded array in MongoDB?

我正在嘗試確定以下用例在 MongoDB 3.4 中是否可行:我有一個包含具有類似於此架構的文檔的集合:

{
    "_id": ObjectId("..."),
    "data": {
        "fname": "John",
        "lname": "Doe"
    },
    "history": []
}

data字段用於保存實體的當前狀態,而history數組用於保存它的最新版本(考慮到最大文檔大小和查詢目的)。

當從應用程序邏輯發出更新操作時,我想將data字段$pushhistory數組中,並將其替換為實體的新狀態。 我在 MongoDB 文檔上找不到任何關於此的信息,而且我在SO發現的每個問題都涉及將全新對象推送到數組中,而不是“移動”現有字段的值。 是否可以在這樣的$push操作中引用文檔字段?

db.collection.update({"_id": "1234"}, {"$set": {"data": {"data-value"}}}, {"$push": {"history": {"history-value"}})

你可以這樣寫,它會自動將值推送到歷史記錄中,並將數據更改為當前狀態。

暫無
暫無

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

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