MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Tổng hợp $ facet trong monogdb

Bạn nên thử $facet tổng hợp để có được kết quả mong muốn, sử dụng khá đơn giản với limitskip ...

Bạn có thể kiểm tra kết quả đầu ra tại đây

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 E11000 lỗi khóa trùng lặp

  2. Chèn một giá trị tại một vị trí cụ thể trong một mảng trong MongoDB

  3. tìm id của subocument mới nhất được chèn vào mongoose

  4. MongoDB - số lượng lớn các chủ đề MongoCleaner

  5. mongodb nhận được các bản ghi riêng biệt