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

Kết hợp nhiều nhóm trong một tập hợp trong mongodb

Bạn có thể tổng hợp như sau:

  • $group bởi store , tính toán subtotal .

  • $project một trường doc để giữ subtotal nhóm nguyên vẹn, trong nhóm tiếp theo.

  • $group bởi null và tích lũy tổng số ròng.

Mã:

db.invoices.aggregate([{
            $group: {
                "_id": "$store",
                "subtotal": {
                    $sum: "$total"
                }
            }
        }, {
            $project: {
                "doc": {
                    "_id": "$_id",
                    "total": "$subtotal"
                }
            }
        }, {
            $group: {
                "_id": null,
                "total": {
                    $sum: "$doc.total"
                },
                "result": {
                    $push: "$doc"
                }
            }
        }, {
            $project: {
                "result": 1,
                "_id": 0,
                "total": 1
            }
        }
    ])

Đầu ra:

{
    "total": 1000,
    "result": [{
            "_id": "ABC",
            "total": 700
        }, {
            "_id": "XYZ",
            "total": 300
        }
    ]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tại sao mongodb được đặt lại sau khi đẩy sang openshift

  2. DeprecationWarning:Nghe các sự kiện trên lớp Db đã không còn được dùng nữa và sẽ bị loại bỏ trong phiên bản chính tiếp theo

  3. Khớp ít nhất N phần tử của mảng với danh sách các điều kiện

  4. Làm cách nào để cập nhật một khóa cụ thể bên trong tài liệu con MongoDB bằng cách sử dụng Sails.js &Waterline?

  5. Không thể xóa, xóa, bỏ mongodb khỏi debian