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

Làm cách nào tôi có thể tính toán tổng giá trị dương, tổng giá trị âm và tổng bằng cách sử dụng Node.js và Mongoose

Xem xét rằng kết quả mong đợi là các con số và các giá trị từ summary tập hợp là các số (nếu không, bạn cần phải biến chúng thành số) đây là tập hợp tính toán kết quả:

db.getCollection('userpricing').aggregate([
    {$group: {
        _id:"$user_id", 
        user_id: {$first: "$user_id"}, 
        Totalpositiveprice:{$sum:{$cond:[{ '$gt': ['$price', 0]}, "$price", 0]}}, 
        Totalnegativeprice:{$sum:{$cond:[{ '$lt': ['$price', 0]}, "$price", 0]}},
        Balanceprice:{"$sum":"$price"}}
     },
    {
      $lookup:
        {
          from: "summary",
          localField: "user_id",
          foreignField: "user_id",
          as: "user_id2"
        }
   },
   {$project: {
    _id:0, 
    user_id:1, 
    Totalpositiveprice: {$sum: ["$Totalpositiveprice", {$sum: "$user_id2.Totalpositiveprice"}] },
    Totalnegativeprice: {$sum: ["$Totalnegativeprice", {$sum: "$user_id2.Totalnegativeprice"}] },
    Balanceprice: {$sum: ["$Balanceprice", {$sum: "$user_id2.Balanceprice"}] },
}},

     {$out: "summary"}
]).pretty()

Kết quả:

db.summary.find().pretty()

{
    "_id" : ObjectId("584fde2906c7385883be0d15"),
    "user_id" : 2,
    "Totalpositiveprice" : 10000,
    "Totalnegativeprice" : 0,
    "Balanceprice" : 10000
}
{
    "_id" : ObjectId("584fde2906c7385883be0d16"),
    "user_id" : 1,
    "Totalpositiveprice" : 23000,
    "Totalnegativeprice" : -10000,
    "Balanceprice" : 13000
}

Sau này, bạn cần chuyển đổi chúng thành chuỗi nếu cần.

Lưu ý: Kết quả là nó ghi đè bộ sưu tập tóm tắt bằng các giá trị mới được tính toán (và cập nhật). Tốt hơn hãy kiểm tra bản sửa lỗi của bạn trước.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 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

  2. Triển khai ứng dụng nodejs cho nền tảng đám mây của Google

  3. Spring Data Mongodb:Cập nhật tài liệu

  4. Chính xác thì ngoại lệ NullPointer ở đâu?

  5. Cách lưu trữ dữ liệu trong MongoDb bằng mô hình thác nước mongoose và không đồng bộ