Подтвердить что ты не робот

Mongo db - запрос вложенного массива и объектов

У меня есть следующая структура документа:

{
   "_id":"12345",
   "value":{
      "T":0,
      "v":[
         {
            "name":"JW",
            "cost":100
         }
      ]
   }
}

Как мне запросить ключ имени? Я пробовал обозначение точки, но не повезло (я думаю, что он работает только на двух уровнях)

4b9b3361

Ответ 1

Непонятно, что вы пробовали, но это должно работать, чтобы найти вышеупомянутый документ name:

db.collection.find({ "value.v.name": "JW" })

Ссылка

Ответ 2

Вам следует использовать оператор $elemMatch:

db.collection.find({
    'value.v': { 
        $elemMatch: {
            name: 'JW', // "name == 'JW'"
            cost : 100 //if you need "&& cost == 100"
        }
    }
});

Mongo docs