我试图从带有嵌套数组的JSON中仅读取匹配的键。 这是我的JSON。
data:[
{
"locale":"en_US",
"pages":[
{
pageName:"testpage1",
"messages":{
"m1":"v1",
"m2":""
}
},
{
pageName:"testpage2",
"messages":{
"m1":"v3",
"m2":"v4"
}
}
]
},
{
"locale":"in_L1",
"pages":[
{
pageName:"testpage1",
"messages":{
"m1":"i1",
"m2":"i2"
}
},
{
pageName:"testpage2",
"messages":{
"m1":"i3",
"m2":"i4"
}
}
]
}
]
我正在尝试以下查询:
db['collec1'].find({locale:"en_US", pages:{$elemMatch:{pageName:"testpage1"},
{locale:1,"pages.pageName":1}}})
也尝试过
db['collec1'].find({locale:"en_US", "pages.pageName":"testpage1"},{locale:1,"pages.pageName":1}}})
都返回了,数组中的所有元素如下:
[
{
"locale":"en_US",
pages:{pageName:["testpage1", "testpage2"]}]
}
]
预期输出为:
[
{
"locale":"en_US",
pages:{pageName:["testpage1"]}]
}
]
有人可以帮我解决我做错的地方以及需要更改的地方吗? 我正在使用this库,它是mongodb的一个称为Ne DB的克隆。
答案 0 :(得分:0)
db['collec1'].find({locale:"en_US", pages:{$elemMatch:{pageName:"testpage1"}}).
在查找方法
{}
中尝试一个空项目,然后尝试 上面的例子