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

MongoDB chuyển đổi kiểu chuỗi thành kiểu float

Vấn đề là toFixed trả về một chuỗi String , không phải là Number . Sau đó, bạn chỉ đang cập nhật tài liệu bằng một String mới và khác .

Ví dụ từ Mongo Shell:

> number = 2.3431
2.3431
> number.toFixed(2)
2.34
> typeof number.toFixed(2)
string

Nếu bạn muốn có 2 số thập phân, bạn phải phân tích cú pháp lại nó bằng một cái gì đó như:

db.MyCollection.find({"ProjectID" : 44, "Cost": {$exists: true}}).forEach(function(doc){
  if(doc.Cost.length > 0){
    var newCost = doc.Cost.replace(/,/g, '').replace(/\$/g, '');
    var costString = parseFloat(newCost).toFixed(2);
    doc.Cost = parseFloat(costString);
    db.MyCollection.save(doc);
  } // End of If Condition
}) // End of foreach


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Xóa tham chiếu một và một - nhiều - Mongoose

  2. Viết nhật ký MongoDB có đảm bảo độ bền không?

  3. Cách tạo và tải xuống pdf với đường dẫn hình ảnh động từ cơ sở dữ liệu bằng bất kỳ gói npm nào

  4. Meteor `Deps.autorun` so với` Collection.observe`

  5. Xóa phần tử _id khỏi kết quả Pymongo