我是mongoDB的新手。我将数据作为字符串获取,但是我想将其解析为decimal/ float
我发现编写了此代码,但似乎没有用。这是我的代码,它将-替换为00,将*替换为*,并将其解析为浮点数。它没有错误,但parseFloat(doc).toFixed(2)

db.behuizingen.find().forEach(function(doc)
{
    var price = doc.Prijs.replace('€', ''); // it may be vary for your other document
    price = price.replace('-', '00');
    price = price.replace('*', '');
    doc.Prijs = Number(price);
    parseFloat(doc).toFixed(2)

    db.behuizingen.update({_id : doc._id} , doc;
})


提前致谢。

最佳答案

你做错了首先进行转换,shell的Number()函数与此无关。因此,替换该行继续:

doc.Prijs = parseFloat(parseFloat(price).toFixed(2));
db.moederborden.update({_id : doc._id} , doc );


但也要提防。使用第二个参数的.update()将用doc的内容“替换”整个文档。

您可能要这样做:

doc.Prijs = parseFloat(parseFloat(price).toFixed(2));
var update = { "$set": {} };

Object.keys(doc).each(function(key) {
    update["$set"][key] = doc[key];
});

db.moederborden.update({_id : doc._id} , update );


它使用$set运算符,以便在写入数据库时​​不会覆盖在doc对象中未引用的任何现有值。

关于javascript - Mongodb将字符串解析为十进制/浮点数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27861586/

10-13 09:53