MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

агрегиране на $facet в monogdb

Трябва да опитате $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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да конфигурирам MongoDB клъстер, който поддържа сесии?

  2. MongoDB $eq оператор на конвейера за агрегиране

  3. как да публикувате произволен json обект в webapi

  4. MongoDB bind_ip няма да работи, освен ако не е зададен на 0.0.0.0

  5. MongoDB добавя нови полета, наречени с променлива стойност