javascript - Mongodb 将字符串解析为十进制/ float

标签 javascript mongodb mongodb-query

我是 mongoDB 新手。我以字符串形式获取数据,但我想将其解析为十进制/ float 。 我发现编写了这段代码,但它似乎不起作用。这是我的代码,它将 - 替换为 00,* 替换为“”,并将其解析为 float 。它没有给出错误,但给出了 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 将字符串解析为十进制/ float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27861586/

相关文章:

javascript - 根据嵌入文档的数量对记录进行排序

mongodb - 是否可以创建一个 Mongoose Hook 以将投影应用于所有查询

mongodb - MongoDB 中的 "Find() inside Insert"?

javascript - MongoDB 汇总子文档上的每个键

javascript - 可以比较 mongodb 中的日期字符串吗?

javascript - .delay() 不适用于我的 .show() JQuery

javascript - Google Chrome 扩展程序打开网址

mongodb - 仅当文档早于 MongoDB 中的新文档时,如何更新插入?

javascript - Bootstrap Modal 的 setTimeout 在超时后不显示

javascript - 如何在 jquery post 中返回数据?