Найти только соответствующие элементы из массива 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 {} а затем попробуйте как приведенный выше пример

Другие вопросы по тегам