我的json数据结构如下
"ArticleInfo": [{
"InfArt": {
"langs": [{
"code": 1,
"text": "Technische Information"
},
{
"code": 4,
"text": "Technical Information"
},
{
"code": 6,
"text": "Informations techniques"
},
]
}
}]
按照我写的shell命令filter
的用法类似
db.article.aggregate(
{
$match: {
"articleNumber": "123123"
},
},
{
$project: {
'ArticleInfo.InfArt.langs': {
$filter: {
input: "$ArticleInfo.InfArt.langs",
as: "item",
cond: { $eq: [ '$$item.code', 4 ] }
}
}
}
}
)
但是$eq
看起来不可行,它给出了一个空列表
我想知道langs
数组中的特定项目,我写错了吗?
答案 0 :(得分:0)
尝试以下操作:
db.article.aggregate(
{ $unwind: '$ArticleInfo' },
{
$project: {
'A': {
$filter: {
input: "$ArticleInfo.InfArt.langs",
as: "item",
cond: { $eq: [ '$$item.code', 4 ] }
}
}
}
}
)