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"} 
    } 
  } 
]);

こうするみたい。