在我的movies
集合中,我有一个year
字段,这是一个字符串(例如:"year": "2010"
)
我想在我的所有集合中更新year,将其更改为int,以便将其与其他int字段进行比较。
我尝试了以下内容:
db.movies.updateMany({}, {$set: {year: new NumberInt("$year")}})
将每年的值更改为0
(int),而不是将字符串值更改为int。
我也尝试了db.movies.updateMany({}, {$set: {year: parseInt("$year", 10)}})
,但它在任何地方都会返回NaN
。
我已经尝试了一段时间,我无法看到我做错了什么!任何帮助非常感谢:)
答案 0 :(得分:0)
你可以尝试经典的方式
var customUpdate = function(document) {
var val = parseInt(document.year, 10);
db.movies.update(
{_id:document._id},
{$set: {year: val}}
);
}
db.movies.find().forEach(customUpdate)