Я хочу запустить запрос для выбора определенных документов. Затем в каждом документе откройте массив вспомогательных документов и запустите запрос для фильтрации этих вспомогательных документов.Mongodb как я могу запросить подмножество массива для определенного документа
Пример:
{
"_id" : ObjectID(23412351346435),
"list" : [
{date: ISODate(2015-01-12T00:00:00.000Z), name: "Jan 12"},
{date: ISODate(2015-01-13T00:00:00.000Z), name: "Jan 13"},
{date: ISODate(2015-01-14T00:00:00.000Z), name: "Jan 14"}
]
}
Я предполагаю, что я могу сделать что-то с aggregate
функции Mongo в. Мне удалось сопоставить документы, которые я хочу, но как я могу получить дополнительный запрос, идущий по массиву? Я попытался использовать $elemMatch
, но это возвращает только первый элемент в массиве, который соответствует диапазону дат.
Чтобы быть ясным, когда я запрашиваю ObjectID(23412351346435)
и диапазон дат 2015-01-12 по 2015-01-13 Я хочу, чтобы он возвращал это;
{
"_id" : ObjectID(23412351346435),
"list" : [
{date: ISODate(2015-01-12T00:00:00.000Z), name: "Jan 12"},
{date: ISODate(2015-01-13T00:00:00.000Z), name: "Jan 13"}
]
}
смог получить результаты, которые вы искали Были ли вы? –