gpt4 book ai didi

mysql - MongoDB 类型从 NumberLong 更新为 String

转载 作者:IT老高 更新时间:2023-10-28 13:33:03 25 4
gpt4 key购买 nike

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

  • 将 MySQL 中的类型从 varchar 更改为 text
  • 尝试使用附加标志 --headerline--columnsHaveTypes
  • 导入 csv
  • 我还尝试使用标签 --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)
})


- 我用 forEach() 尝试了很多解决方案,比如 thisthisthis 等等


对于我尝试的最后一个示例,我没有字符串,而是 Object, {"N",u","m","b","e","r","L","o","n","g"..} 但我希望它是“123456789”,而不是 Object。
我正在使用 MongoDB 3.4 docs
那么,我的问题是,如何将“字段”类型从 NumberLong 更改为 String

最佳答案

您可以使用 valueOf() 将 NumberLong 的值作为 javascript 数字值。

将 NumberLong 转换为 Number :

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

然后,您可以轻松地在您的号码上使用 toString() 来获取字符串值。

将 NumberLong 转换为字符串:

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

关于mysql - MongoDB 类型从 NumberLong 更新为 String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42564740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com