Since a view is defined by an aggregation pipeline, we convert any count, distinct, or find command request to an equivalent aggregation command.
For the count command, this is accomplished with countCommandAsAggregationCommand. Currently this returns a BSONObj, which we almost always parse immediately into an AggregationRequest. For performance and simplicity, we should change these methods to return a StatusWith<AggregationRequest> directly.
Also, if the caller always uses uassertStatusOK on the result, we can further simplify by returning AggregationRequest directly, and throwing an exception in the error case.
- related to
-
SERVER-28177 query_request_helper::asAggregationCommand() should return an AggregationRequest, not a BSONObj
- Closed