2017-02-23 2 views
0

Мне нужно получить ответ массива из запроса на шины rains moingo.Rails, Mongoid, Group by date, month, year on created_at, Линейная диаграмма

Группы По дате

[["Mar 26, 2016", 5],["Mar 27, 2016", 5],["Mar 29, 2016",8],["Mar 30, 2016",5],["Apr 1, 2016",5]] 

группы по

году
[["2013", 15],["2014", 225],["2015",8],["2016",5],["2017",5]] 

Я сделал то же самое с рубином group_by и картами, но нужно делать с Монго запросом.

+0

Можете ли вы предоставить более подробную информацию –

ответ

0

Вы должны использовать group_by (&: поле_формы)

#Model 
class Flow 
    include Mongoid::Document 

    field :title,   type: String 
    field :category_name, type: String 
end 

# Rails console 
Flow.all.group_by(&:category_name) 

# Result 
{"album"=> 
    [#<Flow _id: ...)>,]} 
1

Если вы хотите использовать Монго запрос для group_by, вы можете использовать агрегацию. Вы можете прочитать больше о агрегирования из Монго официального док https://docs.mongodb.com/manual/reference/operator/aggregation/month/

пример:

ModalName.collection.aggregate([ { "$group": { _id: { month: {"$month": "$created_at"}, year: {"$year": "$created_at"} }, count: { "$sum": 1 } } } ]).to_a