【问题标题】:Changing field type with mongo shell使用 mongo shell 更改字段类型
【发布时间】:2019-11-19 14:31:26
【问题描述】:

我正在查看 MongoDB 的 sample_mflix 数据库,该数据库似乎与数据类型有些不一致。例如,我已经将所有“年份”字段从“字符串”(类型:1)更改为数字。但是当我执行以下操作时:

db.movies.find({"year": { "$not": { "$type": 16} } });

我看到数据已经改变,但它仍然不是 16 作为类型(32 位整数)。当我使用“类型”运算符查询时,它返回为“数字”。类型的文档中似乎没有列出类型“数字”。我想将此字段的所有类型转换为相同的类型,并且我希望它们全部为整数或全部为“数字”。如何像其他行一样将类型更改为 16?或者我如何将不是 16 的行更改为“数字”,不管那是什么?

【问题讨论】:

  • 从此documentation$type 支持number 别名,它将与以下BSON类型匹配:double32-bit integer、@987654327 @ 和 decimal.

标签: mongodb


【解决方案1】:
db.movies.find().forEach(function(ch)
  {
         db.movies.update({ "_id":ch._id}, {"$set" :  { "year":parseInt(ch.year)} });
  });

所以这里可以使用 parseInt() 将字符串转换为 int 类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-25
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多