对于使用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做一些事情,但没有结果......谢谢!