【问题标题】:Change int datatype to string in mongodb在 mongodb 中将 int 数据类型更改为 string
【发布时间】:2023-01-08 15:48:20
【问题描述】:

我正在尝试将 mongodb 中的 CardNumber 的 int 更改为 string。脚本显示执行成功但数据类型没有改变。请告诉我如何解决此问题。

GiftCardSale
[0]CardNumber
   Amount
[1]CardNumber
   Amount
db.SalesOrder2.find({"GiftCardSale.$[i].CardNumber": {$exists:true}}).sort({_id:1}).skip(0).limit(100)
    .forEach( function(x) {
        db.SalesOrder2.update({_id: x._id}, {$set: {"GiftCardSale.$[i].CardNumber": 
        x.GiftCardSale.$[i].CardNumber.toString()}});
    }
);

【问题讨论】:

    标签: arrays database mongodb mongodb-query bulkupdate


    【解决方案1】:

    要更改 mongodb 中的多个字段数据类型:

    在这种情况下,我们将字段数据类型从 int 更改为 string。

    1.用数据库地址登录mongo shell(mongosh)

    2.键入 mongosh 命令:show dbs 来查找你的数据库

    3.type mongosh 命令:用于选择要更新的数据库

    4.输入如下:

    db.<dbname>.updateMany(
      { <field> : { $type: 16 } },
      [{ $set: { <field>: { $toString: "$<field>" } } }]
    )
    

    5.宾果游戏!

    PS:尖括号中的所有变量/字段,“”中的 AKA 应替换为您的实际变量/字段名称,例如将变为:

    db.mydatabase.updateMany(
      { myfield : { $type: 16 } },
      [{ $set: { myfield: { $toString: "$myfield" } } }]
    )
    

    对于其他情况,只需将函数从“toString”更改为您想要的其他函数即可。此外,如果你想将输入字段类型与其他格式(如字符串)匹配,你需要将 $type: 16 更改为 $type: 1

    对于特定的型号匹配(有很棒的图表演示),请在下面结帐https://data-flair.training/blogs/mongodb-data-types/

    【讨论】:

      猜你喜欢
      • 2022-01-16
      • 1970-01-01
      • 1970-01-01
      • 2021-01-08
      • 2013-08-31
      • 2023-01-28
      • 2015-11-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多