У меня есть следующие документы MongoDB:Возможно ли запрашивать и группировать документы MongoDB в массив поддоку?
{
"_id" : ObjectId("58950c9c247430c8d9f3997c"),
"stamp_dt" : ISODate("2015-10-15T00:09:00.000+0000"),
"start_lat" : 52.49512579479001,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997d"),
"stamp_dt" : ISODate("2015-10-15T00:09:00.000+0000"),
"start_lat" : 52.48510698285751,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997e"),
"stamp_dt" : ISODate("2015-10-15T00:09:00.000+0000"),
"start_lat" : 52.49966542235,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997f"),
"stamp_dt" : ISODate("2015-10-15T00:09:00.000+0000"),
"start_lat" : 52.52645820975653,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
Обратите внимание, что все имеют одинаковое значение для stamp_dt
. Мне нужен способ, чтобы сгруппировать эти документы, как это:
{
"stamp_dt" : ISODate("2015-10-15T00:09:00.000+0000"),
"results": [
{
"_id" : ObjectId("58950c9c247430c8d9f3997c"),
"start_lat" : 52.49512579479001,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997d"),
"start_lat" : 52.48510698285751,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997e"),
"start_lat" : 52.49966542235,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
{
"_id" : ObjectId("58950c9c247430c8d9f3997f"),
"start_lat" : 52.52645820975653,
"asimId" : ObjectId("588fbe3b835262b7f5ede6f5")
}
]
}
Я мог бы сделать это с помощью кода, но есть способ сделать это с помощью запроса MongoDB (возможно, агрегация)?
Вы можете попробовать что-то вроде этого. 'Db.collection.aggregate ( \t [{ \t \t $ Группа: { \t \t \t _id: "$ stamp_dt", \t \t \t "Результаты": { \t \t \t \t $ толчок: { \t \t \t \t \t _id: "$ _id", \t \t \t \t \t start_lat: "$ start_lat", \t \t \t \t \t asimId = "$ asimId" \t \t \t \t} \t \t \t} \t \t} \t}] ) ' – Veeram
Спасибо! Это сработало. Если вы хотите опубликовать это в качестве ответа, я буду отмечать его как ответ и дать вам кредит. –