过滤结果为mongodb

时间:2015-04-22 08:16:34

标签: arrays mongodb

对于使用MongoDB的实验开发人员来说可能是一个简单的问题,但我没有得到解决方案:

我的json与“Stations”集合:

{
"code": "XX",
"variables": [
    {
        "code": 1,
        "items": [
            {
                "value": 81
            },
            {
                "value": 77
            }
        ]
    },
    {
        "code":2,
        "items": [
            {
                "value": 33
            }
        ]
    }
]
}
....

我想过滤“Station”集合,只获取代码1的变量和值为81的项目,获得类似于此的内容:

{
"code": "XX",
"variables": [
    {
        "code": 1,
        "items": [
            {
                "value": 81
            }
        ]
    }
]
}

由于json包含不同级别的数组,我的方法(mongo shell)是:

db.stations.find(
{"code": "XX"},
{
    "variables": 
    { $elemMatch: 
        {
            "code": 1,
            "items":
             { $elemMatch: 
                {
                    "value": 81
                }
            }
        }
    }
}
)

但是这样得到的所有物品都具有相同水平的'价值:81',而不仅仅是这个。

有什么想法吗?我也尝试用“聚合”运算符和$ redact做一些事情,但没有结果......谢谢!

0 个答案:

没有答案