1
mongodb 修改字段类型
发布于: 2021 年 05 月 23 日
在如下 collection 中 reading 字段本应该是 string 类型,但是在写入时错误的将其写成了 int,此时需要 int 类型改为 string 类型。
{
"_id" : ObjectId("5d79097debeae9d530225b93"),
"type" : 2,
"name" : "ZhiHu",
"intime" : NumberLong(1568213373),
"data" : [
{
"top" : "1",
"title" : "六种配色、5499 元起的 iPhone 11 系列发布,配置和性能如何?",
"reading" : 72920000,
"url" : "https://www.zhihu.com/question/345431917",
"state" : ""
},
{
"top" : "2",
"title" : "男生找对象看重什么?",
"reading" : 35880000,
"url" : "https://www.zhihu.com/question/292443025",
"state" : ""
}
]
}
复制代码
解决方法:
在 MongoDB 的 shell 中执行如下语句即可:
db.zhihu.find({}).forEach(function(item){item.data.forEach(function(x){x.reading = String(x.reading); db.zhihu.save(item)})});
复制代码
执行修改后的reading
变成了 string, 结构如下:
{
"_id" : ObjectId("5d79097debeae9d530225b93"),
"type" : 2,
"name" : "ZhiHu",
"intime" : NumberLong(1568213373),
"data" : [
{
"top" : "1",
"title" : "六种配色、5499 元起的 iPhone 11 系列发布,配置和性能如何?",
"reading" : "72920000",
"url" : "https://www.zhihu.com/question/345431917",
"state" : ""
},
{
"top" : "2",
"title" : "男生找对象看重什么?",
"reading" : "35880000",
"url" : "https://www.zhihu.com/question/292443025",
"state" : ""
}
]
}
复制代码
划线
评论
复制
发布于: 2021 年 05 月 23 日阅读数: 14
xiaolu
关注
还未添加个人签名 2018.09.17 加入
后端程序员,目前从事流媒体方向开发,工作C/C++,业余玩Python/Go。
评论