sql >> Database >  >> NoSQL >> MongoDB

Geneste groepering met MongoDB

Zoiets zou het moeten doen;

db.example.aggregate( 
  { 
    $group: { 
      _id:   { age: "$age", gender: "$gender" }, 
      names: { $addToSet: "$name" } 
    } 
  }, 
  { 
    $group: {
      _id: { age: "$_id.age" }, 
      children: { $addToSet: { gender: "$_id.gender", names:"$names" } } 
    } 
  } 
)

...wat het resultaat geeft;

{
  "_id" : {
    "age" : 1
  },
  "children" : [
    { "gender" : "m", "names" : [ "G", "A" ] },
    { "gender" : "f", "names" : [ "J", "D" ] }
  ]
}, 
...

Als u de leeftijd wilt als _id zoals in uw voorbeeld, vervang gewoon de _id . van de tweede groepering door;

_id: "$_id.age", 



  1. Verborgen RFC3339 DateTime to Date in java

  2. Ondersteunt azure zaken als mongodb en redis?

  3. Hoe verouderde velden in Mongo te verwijderen?

  4. Hoe alles te vinden in het nieuwe Mongo C#-stuurprogramma en het synchroon te maken