-
Type: Task
-
Resolution: Fixed
-
Priority: Major - P3
-
Affects Version/s: None
-
Component/s: None
-
Query Execution
-
Fully Compatible
-
158
Given a simple timeseries collection:
./build/install/bin/mongod --setParameter featureFlagSbeFull=true --setParameter featureFlagTimeSeriesInSbe=true --setParameter logComponentVerbosity='{query: 5}' > db.coll.drop() > db.createCollection("coll", {timeseries: {timeField: "t"}}) > db.coll.insert({t: new Date(), a: 4, b: 7, c: 5}) > db.coll.insert({t: new Date(), a: 2, b: 9, c: 8}) > db.coll.insert({t: new Date(), a: 3, b: 1, c: 6}) ..
The goal of this task is to get the following queries working in block-processing mode (and to write a jstest that verifies it works):
> db.coll.aggregate([{$project: {a: 1, b: 1}}, {$group: {_id: null, x: {$top: {output: ["$a","$b"], sortBy: {b: 1}}}}}])
> db.coll.aggregate([{$project: {a: 1, b: 1}}, {$group: {_id: null, x: {$bottom: {output: ["$a","$b"], sortBy: {b: 1}}}}}])
> db.coll.aggregate([{$project: {a: 1, b: 1}}, {$group: {_id: "$c", x: {$top: {output: ["$a","$b"], sortBy: {b: 1}}}}}])
> db.coll.aggregate([{$project: {a: 1, b: 1}}, {$group: {_id: "$c", x: {$bottom: {output: ["$a","$b"], sortBy: {b: 1}}}}}])
- is duplicated by
-
SERVER-84490 [BP] Support group-by $top/$bottom with multiple buckets
- Closed
-
SERVER-87204 Relocate decision to materialize bson for $top/bottom to stage_builder_group.cpp
- Closed