在物件陣列中找到匹配元素后,我試圖將物件推入陣列
這是我的播放串列集合的結構示例:
playlist: {
userName: 'user-name',
userId: 'user-id',
playlistArray: [
{
playlistName: 'playlist1',
playlistSongs: [
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
],
},
{
playlistName: 'playlist2',
playlistSongs: [
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
],
},
],
}
這是我試圖插入到playlistSongs也包含playlistName: 'playlist2'在同一物件中的陣列中的物件
{ track: 'sometrackinfo', title: 'sometracktitle', duration: 123, uri: 'sometrackuri' }
所以結果看起來像這樣:
playlist: {
userName: 'user-name',
userId: 'user-id',
playlistArray: [
{
playlistName: 'playlist1',
playlistSongs: [
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
],
},
{
playlistName: 'playlist2',
playlistSongs: [
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
{ track: '', title: '', duration: 0, uri: '' },
{ track: 'sometrackinfo', title: 'sometracktitle', duration: 123, uri: 'sometrackuri' },
],
},
],
}
uj5u.com熱心網友回復:
帶arrayFilters和過濾$[<identifier>]運算子。
db.collection.update({},
{
"$push": {
"playlist.playlistArray.$[pl].playlistSongs": {
track: "sometrackinfo",
title: "sometracktitle",
duration: 123,
uri: "sometrackuri"
}
}
},
{
arrayFilters: [
{
"pl.playlistName": "playlist2"
}
]
})
示例 Mongo Playground
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/366486.html
上一篇:貓鼬聚合回傳空陣列[]?
下一篇:一次更新多個檔案中歸檔的嵌套陣列
