首页 > 解决方案 > MongoDB如何将所有文档的属性值从int转换为字符串?

问题描述

我对 MongoDB 很陌生,我有属性名称为“duns_number”的现有文档,其值当前为 Int32,如何将“duns_number”值转换为字符串?

这是我到目前为止所拥有的,但这不会将值转换为字符串。

db.getCollection('ds_masterlist').update({"duns_number": { $type: "int" }, { $set: {"duns_number": { $type: "string" }} }})

这个我也试过了

db.ds_masterlist.find( { 'duns_number' : { $type : "int" } } ).forEach( function (x) {   
  x.duns_number = new String(x.duns_number); 
  db.ds_masterlist.save(x);
});

但是它正在转换 duns_number 的每个数字

标签: mongodb

解决方案


我找到了解决方案,

db.ds_company_masterlist.find( { 'duns_number' : { $type : "int" } } ).forEach( function (x) {   
  x.duns_number= ""+x.duns_number; // convert field to string
  db.ds_company_masterlist.save(x);
});

这解决了我的问题。

这也不适用于所有记录,

db.ds_masterlist.update(
  {  },
  [{ $set: { duns_number: { $toString: "$duns_number" } } }],
  { multi: true }
)

谢谢你


推荐阅读