sql >> データベース >  >> NoSQL >> MongoDB

MongoDBを使用したネストされたグループ化

    このような何かがそれを行う必要があります;

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

    ...結果が得られます;

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

    年齢を_idにする場合 あなたの例のように、2番目のグループの_idを置き換えるだけです によって;

    _id: "$_id.age", 
    



    1. Node.js、Redis、Socket.ioを使用してツイートをキャッシュする

    2. Chefを使用したMongoDBデータベース自動化の基本

    3. JavaコードへのMongoDBAggregationコマンド

    4. マングースモデル、文字列の配列、オブジェクトの配列構造