社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  MongoDB

MongoDB如何为嵌套数组生成投影过滤器

haha1 • 6 年前 • 1857 次点击  

这个问题已经有了答案:

我的JSON数据结构如下

"ArticleInfo": [{
    "InfArt": {
        "langs": [{
                "code": 1,
                "text": "Technische Information"
            },
            {
                "code": 4,
                "text": "Technical Information"
            },
            {
                "code": 6,
                "text": "Informations techniques"
            },
        ]
    }
}]

跟随 filter 我编写的shell命令的用法如下

db.article.aggregate(
    {
        $match: {
            "articleNumber": "123123"
        },
    },
    {
        $project: {
            'ArticleInfo.InfArt.langs': {
                $filter: {
                  input: "$ArticleInfo.InfArt.langs",
                  as: "item",
                  cond: { $eq: [ '$$item.code', 4 ] }
                }
            }
        }
    }
)

但是 $eq 看起来不像是工作,它给出了一个空列表

我想知道 langs 数组,我写错了吗?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39106
文章 [ 1 ]  |  最新文章 6 年前
Jitendra
Reply   •   1 楼
Jitendra    7 年前

尝试如下操作:

db.article.aggregate(
    { $unwind: '$ArticleInfo' },
    {
        $project: {
            'A': {
                $filter: {
                  input: "$ArticleInfo.InfArt.langs",
                  as: "item",
                  cond: { $eq: [ '$$item.code', 4 ] }
                }
            }
        }
    }
)