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

Làm tròn đến 2 chữ số thập phân bằng cách sử dụng khung tổng hợp MongoDB

Không có $round nhưng bạn có thể thực hiện việc này trong khung tổng hợp - thực hiện theo thứ tự cụ thể thường sẽ tránh được các vấn đề về độ chính xác dấu phẩy động.

> db.a.save({x:1.23456789})
> db.a.save({x:9.87654321})
> db.a.aggregate([{$project:{ _id:0, 
         y:{$divide:[
              {$subtract:[
                      {$multiply:['$x',100]},
                      {$mod:[{$multiply:['$x',100]}, 1]}
              ]},
              100]}
}}])
{ "y" : 1.23 }
{ "y" : 9.87 }

Với đường ống hiện có trong sự cố, hãy thay thế:

{$multiply:[{$divide: ['$ActSls', '$PlnSls']},100]}

với

{$divide:[
     {$subtract:[ 
          {$multiply:[
             {$divide: ['$ActSls','$PlnSls']},
             10000
          ]}, 
          {$mod:[
             {$multiply:[{$divide: ['$ActSls','$PlnSls']}, 10000 ]},
             1]}
          ]}, 
     100
]}

Với các điểm dữ liệu mẫu của bạn, đây là kết quả:

{ "ActSls" : 31, "PlnSls" : 51, "ActToPln" : 60.78 }
{ "ActSls" : 41, "PlnSls" : 51, "ActToPln" : 80.39 }
{ "ActSls" : 72, "PlnSls" : 102, "ActToPln" : 70.58 }


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB .Net driver 2.0 Pull (loại bỏ phần tử)

  2. Ứng dụng Heroku gặp sự cố sau khi MongoDB cập nhật lên 3.0

  3. Sắp xếp mảng đối tượng lồng nhau

  4. 2 cách để có được kích thước tài liệu trong MongoDB

  5. Thêm trường mới vào mọi tài liệu trong bộ sưu tập MongoDB