diff --git a/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj b/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj
index 1b075885fc69915656ad24acbad3a381e37e17f2..5abcf60811007f79123e65341dcdf4b3a28c4864 100644
--- a/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj
+++ b/modules/drivers/mongo/src/metabase/driver/mongo/query_processor.clj
@@ -456,8 +456,8 @@
   (let [expanded-ags (map expand-aggregation aggregations)
         group-ags    (mapcat first expanded-ags)
         post-ags     (mapcat second expanded-ags)]
-    [{$group (merge {"_id" id}
-                    (into (ordered-map/ordered-map) group-ags))}
+    [{$group (merge (into (ordered-map/ordered-map) group-ags)
+                    {"_id" id})}
      (when (not-empty post-ags)
        {"$addFields" (into (ordered-map/ordered-map) post-ags)})]))
 
@@ -469,26 +469,26 @@
    [;; create a totally sweet made-up column called `___group` to store the fields we'd
     ;; like to group by
     (when (seq breakout-fields)
-      [{$project (merge {"_id"      "$_id"
-                         "___group" (into
-                                     (ordered-map/ordered-map)
-                                     (for [field breakout-fields]
-                                       [(->lvalue field) (->rvalue field)]))}
-                        (into
+      [{$project (merge (into
                          (ordered-map/ordered-map)
                          (for [ag    aggregations
                                :let  [[_ ag-field] (unwrap-named-ag ag)]
                                :when ag-field]
-                           [(->lvalue ag-field) (->rvalue ag-field)])))}])
+                           [(->lvalue ag-field) (->rvalue ag-field)]))
+                        {"_id"      "$_id"
+                         "___group" (into
+                                     (ordered-map/ordered-map)
+                                     (for [field breakout-fields]
+                                       [(->lvalue field) (->rvalue field)]))})}])
     ;; Now project onto the __group and the aggregation rvalue
     (group-and-post-aggregations (when (seq breakout-fields) "$___group") aggregations)
     [;; Sort by _id (___group)
      {$sort {"_id" 1}}
      ;; now project back to the fields we expect
-     {$project (merge {"_id" false}
-                      (into
+     {$project (merge (into
                        (ordered-map/ordered-map)
-                       projected-fields))}]]))
+                       projected-fields)
+                      {"_id" false})}]]))
 
 (defn- handle-breakout+aggregation
   "Add projections, groupings, sortings, and other things needed to the Query pipeline context (`pipeline-ctx`) for