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

multi sum / count trên mongodb (tổng giới tính và tổng tất cả kết quả)

Một cái gì đó như vậy sẽ thực hiện thủ thuật:

db.collection.aggregate([
  {$project: {
    male: {$cond: [{$eq: ["$gender", "male"]}, 1, 0]},
    female: {$cond: [{$eq: ["$gender", "female"]}, 1, 0]},
  }},
  {$group: { _id: null, male: {$sum: "$male"},
                        female: {$sum: "$female"},
                        total: {$sum: 1},
  }},
])

Sản xuất lấy ví dụ của bạn:

{ "_id" : null, "male" : 2, "female" : 3, "total" : 5 }

Ý tưởng chính là sử dụng biểu thức có điều kiện để ánh xạ giới tính thành 0 hoặc 1. Sau đó, tất cả những gì bạn cần là một tổng đơn giản trên mỗi trường.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Thực thi tệp JavaScript trong MongoDB

  2. Cách tạo người dùng trong mongodb với docker-compile

  3. Apache Drill - Thời gian bắt đầu đầu tiên cao

  4. Tổng hợp MongoDb để lọc danh sách dựa trên id có trong đối tượng của mảng từ tất cả tài liệu của cùng một bộ sưu tập

  5. Lọc Năm tháng từ tài liệu Mongo