MongoDBtypes从NumberLong更新为String

我已经将CSV文件导入到我的mongodb中。 CSV有需要mongo分隔符,并从这个查询从MySQL数据库收到:
SELECT * FROM csgo_users INTO OUTFILE 'b1.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
此外,我试图从Sequel Pro接收CSV的导出function。
在我的csv中,我有17个字符长的字段。 在MySQL数据库中,该字段的types为VARCHAR,但包含17位数字。
在导入csv到mongo后,我得到了这个types为NumberLong字段,但我希望它是string
我已经尝试到目前为止:

  • 将MySQL中的types从varchar更改为text
  • 试图导入CSV附加标志 – --headerline--columnsHaveTypes
  • 此外,我试图添加单独的领域没有顶线,与标签 – --fields
  • 尝试这样的命令:

     db.csgo_users.find({"steam_id": {$type: 18}}) .toArray() .map(function(v){ v.steam_id = new String(v); db.csgo_users.save(v) }) 

或这个:

 db.csgo_users.find({"steam_id": {$type: 18}}) .toArray() .map(function(v){ v.steam_id = new String(v.toSring()); db.csgo_users.save(v) }) 

– 我已经尝试了很多解决schemeforEach()像这样或这个或这个等等

对于我尝试的最后一个例子,我没有string,但是Object, {"N",u","m","b","e","r","L","o","n","g"..}但我希望它是“123456789”,而不是对象。
我正在使用MongoDB 3.4 文档 。
所以,我的问题是,如何将“字段”types从NumberLongString

您可以使用valueOf()来获取NumberLong的值作为javascript数值。

Casting NumberLong到Number:

 NumberLong('5').valueOf() // 5 

然后,你可以在你的数字上使用easilly toString()来获得String值。

铸造NumberLong到string:

 NumberLong('5').valueOf().toString() // "5"