Запрос 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}
}
Ответы
Ответ 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