Linq to Aggregation Framework
need a $literal operator to help prevent injection attacks
Use new Sorter for Aggregation $sort and $group
Add variables, $$ROOT and $$CURRENT to aggregation and make $let to set them
$map expression to run a sub expression on every member of an array.
Set operations for Aggregation Framework $project
Aggregate Command will support $out