Actually in the past we only used aggregation pipelines to retrieve data. In that case you need an array mapping all the operations to certain data. I currently use the find function to retrieve data that do not need any sort of computation and grouping (retrive APs, recalculation submissions etc.)

I use sorting when calling the find function (it is an extra field) then on line 55 of this file we call c.Find(query).Sort(sorter).All(results)