В понедельник go У меня есть документы, которые следуют следующему шаблону:
{
name: "test",
codes: [
[
{
code: "abc",
value: 123
},
{
code: "def",
value: 456
},
],
[
{
code: "ghi",
value: 789
},
{
code: "jkl",
value: 012
},
]
]
}
Я использую агрегированный запрос (из-за объединений) и в блоке $project
мне нужно вернуть "name"
и значение объекта, который имеет код "def"
, если он существует, и пустую строку, если его нет.
Я не могу просто $unwind
кодов и $match
, потому что код "def"
там не гарантирован.
$filter
кажется правильным подходом, поскольку $elemMatch
не работает, но для меня не очевидно, как это сделать на вложенном массиве массивов.