新的NumberInt()未在mongodb

时间:2017-04-08 16:40:24

标签: javascript mongodb

在我的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

我已经尝试了一段时间,我无法看到我做错了什么!任何帮助非常感谢:)

1 个答案:

答案 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)

https://code.visualstudio.com/docs/editor/debugging