簡體   English   中英

如何使用MongoDB更新數組中對象中數組中對象中的文檔?

[英]How to update document in an object in an array in an object in an array using MongoDB?

使用 MongoDB 查詢:
1. 如何找到_id A3的對象?
2. 如何將_id A3對象更新為A4

請注意:數據庫是一組對象,其中一個鍵具有一組對象

[{
"project_name": "ProjectA",
"issues":[{"issue_title":"TitleA1", "_id":"A1"},
          {"issue_title":"TitleA2","_id":"A2"},
          {"issue_title":"TitleA3","_id":"A3"}]
},
{
"project_name": "ProjectB",
"issues":[{"issue_title":"TitleB1", "_id":"B1"},
          {"issue_title":"TitleB2","_id":"B2"},
          {"issue_title":"TitleB3","_id":"B3"}]
}
]

您可以使用點符號通過嵌套的_id 匹配您的對象,並使用$unwind$replaceRoot將嵌套對象提升到頂級:

db.collection.aggregate([
    {
        $unwind: "$issues"
    },
    {
        $match: { "issues._id": "A3" }
    },
    {
        $replaceRoot:{ newRoot: "$issues" }
    }
])

蒙戈游樂場

位置運算符可用於更新該運算符

db.col.updateOne({ "project_name": "ProjectA", "issues._id": "A3" }, { $set: { "issues.$._id": "A4" } })

暫無
暫無

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

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