在mongodb中将int数据类型更改为字符串



我正试图在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()}});
}
);

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

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

1.使用数据库地址登录mongoshell(mongosh(

2.键入mongosh命令:显示dbs以查找数据库

3.键入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/

最新更新