Найти только соответствующие элементы из массива JSON в Ne DB/ реагировать на native-local-mongo/mongo db
Я пытаюсь прочитать только соответствующие ключи из 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"]}]
}
]
Может ли кто-нибудь помочь мне, где я делаю это неправильно и что нужно изменить? я использую эту библиотеку, которая является клоном mongodb под названием Ne DB.
1 ответ
db['collec1'].find({locale:"en_US", pages:{$elemMatch:{pageName:"testpage1"}}).
попробуй с пустым проектом в методе find
{}
а затем попробуйте как приведенный выше пример