Запрос mongodb по подполе - программирование
Подтвердить что ты не робот

Запрос mongodb по подполе

Как запросить все {"module" : "B"}?

Следующий запрос не работает:

db.XXX.find({ "_id" : { "module" : "B" } });

Спасибо, тонна!

Данные выглядят так:

{
  "_id" : {"module" : "A","date" : ISODate("2013-03-18T07:00:00Z")},
  "value" : {"count" : 1.0}
}

{
  "_id" : {"module" : "B","date" : ISODate("2013-03-18T08:00:00Z")},
  "value" : {"count" : 2.0}
}
4b9b3361

Ответ 1

Try:

db.XXX.find({ "_id.module" :  "B" });

Разница заключается в том, что ваш исходный запрос будет пытаться сопоставить весь этот вложенный документ (т.е. где _id - это поддокумент, содержащий поле "модуль" со значением "B" и ничего больше)

Ссылка: MongoDB Dot Notation

Ответ 2

Использовать точечную нотацию:

db.XXX.find({ "_id.module" : "B" })

Ответ 3

Для точного совпадения в подзадаче

    db.bios.find(
   {
     '_id.module': 'B'
   }
)

в запросе используется обозначение dot для доступа к полям в subdocument:

Ссылка Refference