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

monogdbの$facet集約

    $facetを試してみてください limitで使用するのが非常に簡単な目的の結果を取得するための集計 およびskip ...

    出力を確認できますここ

    db.collection.aggregate([
      { "$facet": {
        "top": [
          { "$group": {
            "_id": "$Category",
            "response": { "$sum": "$response" }
          }},
          { "$sort": { "response": -1 }},
          { "$limit": 2 }
        ],
        "rest": [
          { "$group": {
            "_id": "$Category",
            "response": { "$sum": "$response" }
          }},
          { "$sort": { "response": -1 }},
          { "$skip": 2 },
          { "$group": {
            "_id": "Others",
            "response": { "$sum": "$response" }
          }}
        ]
      }},
      { "$project": { "data": { "$concatArrays": ["$top", "$rest"] }}},
      { "$unwind": "$data" },
      { "$replaceRoot": { "newRoot": "$data" }}
    ])
    



    1. $ inクエリでmongodbを更新しますか?

    2. Javaはバイトをバイナリセーフ文字列に変換します

    3. blpopはしばらくするとキューの処理を停止します

    4. MeteorJSでのMongoDBの集計とグループ化の問題