我需要?jiǎng)h除mongodb中2d文檔結(jié)構(gòu)數(shù)組中的條目。示例如下{ "_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" : ""}從兩個(gè)數(shù)組。pName:Test1 可用于將其過(guò)濾掉??捎糜诓檎掖藘?nèi)容并將其刪除的查詢是什么?我可以做一個(gè)查找,然后循環(huán)訪問(wèn)集合,找到匹配的條目,然后更新文檔。我必須使用Go mongodb驅(qū)動(dòng)程序執(zhí)行此操作由于這對(duì)我來(lái)說(shuō)有點(diǎn)復(fù)雜,因?yàn)槲沂莋olang和mongo db的新手,所以我被困住了。更新:1.按照建議在 update() 調(diào)用中嘗試,但不起作用。{$pull: {workflows: {pName:"Test1"}}}, {multi: true}2.嘗試過(guò)類似的東西db.getCollection('workflows').update({_id:ObjectId('5ffef283f1f06ff8524aa2c2')}, {$pull:{workflows: { $elemMatch: {pName:'Test2'}}}} )這將刪除整個(gè)數(shù)組,如下所示,因?yàn)?Test2 存在于其中。我只需要?jiǎng)h除 Test2 文檔[ { "pName" : "Test1", "wName" : "TestApp_Test1", "agent" : "" }, { "pName" : "Test2", "wName" : "TestApp_Test2", "agent" : "" }]
1 回答

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
我會(huì)給你一個(gè)提示,因?yàn)槟闶切率郑氵€沒(méi)有發(fā)布嘗試過(guò)的東西。
您可以使用 來(lái)刪除符合條件的文檔。$pull
你可以使用官方的mongodb驅(qū)動(dòng)程序進(jìn)行g(shù)o或最常用的gopkg
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)
0/150
提交
取消