亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何迭代 mongo db 文檔并更新嵌套數組

如何迭代 mongo db 文檔并更新嵌套數組

Go
SMILET 2022-08-01 16:55:54
我需要刪除mongodb中2d文檔結構數組中的條目。示例如下{    "_id" : ObjectId("5ffef283f1f06ff8524aa2c2"),    "applicationName" : "TestApp",    "pName" : "",    "environments" : [],    "stages" : [],    "createdAt" : ISODate("2021-01-15T09:51:35.546Z"),    "workflows" : [         [             {                "pName" : "Test1",                "wName" : "TestApp_Test1",                "agent" : ""            },             {                "pName" : "Test2",                "wName" : "TestApp_Test2",                "agent" : ""            }        ],         [             {                "pName" : "Test1",                "wName" : "TestApp_Test1",                "agent" : ""            }        ]    ],    "updatedAt" : Date(-62135596800000)}因此,我想刪除所有文檔事件{  "pName" : "Test1",  "wName" : "TestApp_Test1",  "agent" : ""}從兩個數組。pName:Test1 可用于將其過濾掉。可用于查找此內容并將其刪除的查詢是什么?我可以做一個查找,然后循環訪問集合,找到匹配的條目,然后更新文檔。我必須使用Go mongodb驅動程序執行此操作由于這對我來說有點復雜,因為我是golang和mongo db的新手,所以我被困住了。更新:1.按照建議在 update() 調用中嘗試,但不起作用。{$pull: {workflows: {pName:"Test1"}}}, {multi: true}2.嘗試過類似的東西db.getCollection('workflows').update({_id:ObjectId('5ffef283f1f06ff8524aa2c2')}, {$pull:{workflows: { $elemMatch: {pName:'Test2'}}}} )這將刪除整個數組,如下所示,因為 Test2 存在于其中。我只需要刪除 Test2 文檔[     {        "pName" : "Test1",        "wName" : "TestApp_Test1",        "agent" : ""    },     {        "pName" : "Test2",        "wName" : "TestApp_Test2",        "agent" : ""    }]
查看完整描述

1 回答

?
慕標5832272

TA貢獻1966條經驗 獲得超4個贊

我會給你一個提示,因為你是新手,你還沒有發布嘗試過的東西。

您可以使用 來刪除符合條件的文檔。$pull

類似示例

你可以使用官方的mongodb驅動程序進行go或最常用的gopkg

示例 SO 帖子



查看完整回答
反對 回復 2022-08-01
  • 1 回答
  • 0 關注
  • 147 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號