Вы можете использовать Агрегационный конвейер , чтобы получить данные в правильной форме из MongoDB:
db.requests.aggregate([
{
$group: {
_id: {
year: {
$year: "$start_date"
},
month: {
$month: "$start_date"
}
},
requests: {
$push: "$$ROOT"
}
}
},
{
$project: {
_id: 0,
year: "$_id.year",
month: "$_id.month",
requests: "$requests"
}
}
])
Очевидно, это использует только REPL, и вам придется его перевестик DSL предоставлен Mongoid.Исходя из того, что я смог найти, должна быть возможность просто получить базовую коллекцию и вызвать для нее aggregate
:
Request.collection.aggregate([...])
Теперь вам просто нужно взять запрос и преобразовать его во что-то, что Mongoid примет,Я думаю, что вам просто нужно добавить кучу кавычек вокруг ключей объекта, но я не настроил среду, чтобы попробовать это сам.