У меня есть простой набор данных в MongoDB (версия 2.2.2):
{
"_id": "527d60865593622ba17643e6",
"siteid": "100",
"date": 1383940800,
"visits": 1
},
{
"_id": "527d60865593622ba17643e7",
"siteid": "200",
"date": 1383940801,
"visits": 1
},
{
"_id": "527d60865593622ba17643e8",
"siteid": "200",
"date": 1383940802,
"visits": 1
}
У меня есть Mongoid (версия 3.0.1) коллекция, где я пытаюсь использовать совокупный метод:
query = {
"$project" => { _id: 0 },
"$match" => {"$and" => [{:date=>{"$gte"=>1383940800}}, {:date=>{"$lt"=>1384027200}}]},
"$group" => {"_id" => "$siteid", "visits" => {"$sum" => "$visits"}},
"$project" => { "siteid" => "$_id" }
}
result = @object.collection.aggregate(query)
в результате, что я вернусь в следующем:
[{"_id"=>200, "visits"=>2}, {"_id"=>100, "visits"=>1}]
W шляпа Я хотел бы результат будет таков:
[{"siteid"=>200, "visits"=>2}, {"siteid"=>100, "visits"=>1}]
Я думал, что последняя операция $ проект будет делать это для меня, но это, кажется, полностью игнорируется. Какие-либо предложения?