我是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/