sql >> Database >  >> NoSQL >> MongoDB

MongoDB converteert stringtype naar floattype

Het probleem is dat toFixed retourneert een String , geen Number . Dan werk je het document gewoon bij met een nieuwe en andere String .

Voorbeeld van Mongo Shell:

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

Als je een getal van 2 decimalen wilt, moet je het opnieuw ontleden met zoiets als:

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. Hoe de verbinding tussen mysql en memcached in php . te controleren

  2. mongodb:vind samenvatting van records

  3. Redis scan count:Hoe kan ik SCAN forceren om alle sleutels terug te sturen die overeenkomen met een patroon?

  4. Hoe een veld uit een MongoDB-document te verwijderen ($ uitgeschakeld)