[CSHARP-1693] Add $sortByCount aggregation stage Created: 21/Jun/16  Updated: 27/May/22  Resolved: 26/Oct/16

Status: Closed
Project: C# Driver
Component/s: None
Affects Version/s: None
Fix Version/s: 2.4

Type: New Feature Priority: Major - P3
Reporter: Rathi Gnanasekaran Assignee: Robert Stam
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
depends on SERVER-23816 Add $sortByCount aggregation stage Closed
Epic Link: MongoDB 3.4
Server Compat: 3.3

 Description   

Syntax

{ $sortByCount: <arbitrary non-object expression, see 'Behavior' for why> }

Examples

> db.example.insert([
  {_id: 0, x: 1},
  {_id: 1, x: 2},
  {_id: 2, x: 1},
  {_id: 3, x: 0}
]);
> db.example.aggregate([{$sortByCount: "$x"}])
{_id: 1, count: 2}
{_id: 0, count: 1}
{_id: 2, count: 1}
 
// Example #2
> db.example.drop();
> db.example.insert([
  {_id: 0, x: 1.4},
  {_id: 1, x: 2.3},
  {_id: 2, x: 1.1},
  {_id: 3, x: 0.5}
]);
// Note this is an expression, so does not count as an "object" for the sake of erroring.
> db.example.aggregate([{$sortByCount: {$floor: "$x"}}])
{_id: 1, count: 2}
{_id: 0, count: 1}
{_id: 2, count: 1}
 
// Example #3
> db.example.aggregate([{$sortByCount: {field1: "$x", field2: "$y"}}])
Error!

Behavior

  • This stage is syntactic sugar for the following:

    {
      $group: {
        _id: <expression>,
        count: {$sum: 1}
      }
    },
    {$sort: {count: -1}}
    

  • We restrict the expression to not be an object so that we might be able to add further arguments to $sortByCount in the future.


 Comments   
Comment by Githook User [ 26/Oct/16 ]

Author:

{u'username': u'rstam', u'name': u'rstam', u'email': u'robert@robertstam.org'}

Message: CSHARP-1693: Added support for $sortByCount aggregation stage.
Branch: master
https://github.com/mongodb/mongo-csharp-driver/commit/c6b1f2c018697e335aa3f6460db381d32de73767

Generated at Wed Feb 07 21:40:24 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.