SQL脳向けのmongodbの集計クエリ
mongodbのaggregateフレームワークに全然なれることが出来ない。
10年以上かけて出来たSQL脳にはハードルが高いよねコレ。
SELECT group_key1, group_key2, group_key3, sum(num_field1) as num_field1_sum, min(num_field2) as num_field2_sum, max(num_field3) as num_field3_sum FROM data_table GROUP BY group_key1, group_key1, group_key1
こんなSQLと等価なクエリを書くには
db.data_table.aggregate([ { $match: {"xxx": "xxx"}} , // 必要なら絞り込みの条件を追加 { $group: { _id: { "group_key1": "$group_key1", "group_key2": "$group_key2", "group_key3": "$group_key3" }, // _idのとじカッコに注意。 "num_field1_sum":{"$sum": "$num_field1"}, "num_field2_sum":{"$min": "$num_field2"}, "num_field3_sum":{"$max": "$num_field3"} } } ]);
こうするみたい。