MongoDB如何使嵌套数组的投影过滤器[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我的json数据结构看起来像这样

"A": [{
    "B": {
        "C": [{
                "code": 1,
                "text": "aaaa"
            },
            {
                "code": 4,
                "text": "bbbb"
            },
            {
                "code": 6,
                "text": "cccc"
            },
        ]
    }
}]

按照filter用法我写的shell命令看起来像这样

db.article.aggregate(
    {
        $match: {
            "number": "123123"
        },
    },
    {
        $project: {
            'A.B.C': {
                $filter: {
                  input: "$A.B.C",
                  as: "item",
                  cond: { $eq: [ '$$item.code', 4 ] }
                }
            }
        }
    }
)

$eq看起来不像作品,它给了一个空列表

我想知道langs数组中的一个特定项目,我写错了什么?

mongodb filter bson
1个回答
0
投票

尝试以下内容:

db.article.aggregate(
    { $unwind: '$ArticleInfo' },
    {
        $project: {
            'A': {
                $filter: {
                  input: "$ArticleInfo.InfArt.langs",
                  as: "item",
                  cond: { $eq: [ '$$item.code', 4 ] }
                }
            }
        }
    }
)
© www.soinside.com 2019 - 2024. All rights reserved.