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

Cách tổng hợp điểm của tất cả các môn học trong mongoDB

Bạn có thể sử dụng tổng hợp dưới đây:

db.col.aggregate([
    {
        $unwind: "$marks"
    },
    {
        $project: {
            _id: 1,
            name: 1,
            marks: {
                $objectToArray: "$marks"
            }
        }
    },
    {
        $project: {
            _id :1,
            name: 1,
            total_marks: {
                $reduce: {
                    input: "$marks",
                    initialValue: 0,
                    in: { $add : ["$$value", "$$this.v"] }
                }
            }
        }
    },
    {
        $group: {
            _id: "$_id",
            name: { $first: "$name" },
            total_marks: { $sum: "$total_marks" }
        }
    }
])

Vì nhãn hiệu của bạn được lưu trữ dưới dạng đối tượng, bạn nên sử dụng $ objectToArray để có được một mảng các chủ đề. Sau đó, bạn có thể sử dụng $ giảm để tính tổng tất cả các môn học cho một học sinh.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. $ tra cứu nhiều cấp độ mà không có $ unwind?

  2. Làm cách nào để định cấu hình chỉ mục mongoDB trong django-nonrel mà không cần sử dụng Mô hình?

  3. Thanh tìm kiếm với các đề xuất với nodejs và mongodb

  4. Sử dụng nhiều giản đồ cho mỗi bộ sưu tập trên mongodb

  5. Django tuần tự hóa thành lỗi JSON:đối tượng 'MetaDict' không có thuộc tính 'bê tông_mẫu'