Uploaded image for project: 'C# Driver'
  1. C# Driver
  2. CSHARP-1173

Aggregation Framework needs to support $addToSet and $push inside a Group expression tree

    • Type: Icon: New Feature New Feature
    • Resolution: Done
    • Priority: Icon: Major - P3 Major - P3
    • 2.0
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      Currently, the only 2 accumulators we do not support are $push and $addToSet.

      We could implement these in a simple manner with the following syntax.

      For $push:

      { $group: {_id: "$State", Cities: { $push: "$City" } } }
      .Group(x => x.State, g => new 
      { 
        _id = g.Key,
        Cities = new List<string>(g.Select(x => x.City))
      }
      

      And for $addToSet:

      { $group: {_id: "$State", Cities: { $addToSet: "$City" } } }
      .Group(x => x.State, g => new
      { 
        _id = g.Key,
        Cities = new HashSet<string>(g.Select(x => x.City))
      }
      

            Assignee:
            craig.wilson@mongodb.com Craig Wilson
            Reporter:
            craig.wilson@mongodb.com Craig Wilson
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: