如何在 MongoDB 中更改字段类型?
mongodbdatabasebig data analytics
我们以将字符串类型转换为 int 为例。聚合不允许我们直接更改字段类型;因此,您需要编写代码来转换字段类型。
首先,创建一个包含 document 的集合。之后,我们将获取每个字段的类型。创建包含 document 的集合的查询如下
>db.changeDataType.insertOne({"StudentName":"Larry","StudentAge":23,"StudentZipCode":"
10001","isProgrammer":false});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c6ed4976fd07954a4890694")
}
使用 find() 方法显示集合中的所有文档。查询语句如下:
> db.changeDataType.find().pretty();
输出结果如下:
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
}
现在让我们检查集合中每个字段的类型。查询如下,用于检查每个字段的类型:
> checkType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : "10001",
"isProgrammer" : false
}
现在我们将使用上面的变量"checkType"来获取每个变量的类型。查询如下:
> typeof checkType._id; object > typeof checkType.StudentName; string > typeof checkType.StudentAge; number > typeof checkType.StudentZipCode; string > typeof checkType.isProgrammer; boolean
现在,将"StudentZipCode"的类型从字符串更改为数字类型。查询如下:
> db.changeDataType.find().forEach(function(ch)
... {
... db.changeDataType.update({
... "_id":ch._id},
... {"$set":
... {
... "StudentZipCode":parseInt(ch.StudentZipCode)
... }
... });
... });
我已将"StudentZipCode"的类型从字符串更改为数字类型。为了验证这一点,让我们按照上面所见检查集合中字段的类型:
> againCheckType=db.changeDataType.findOne();
{
"_id" : ObjectId("5c6ed4976fd07954a4890694"),
"StudentName" : "Larry",
"StudentAge" : 23,
"StudentZipCode" : 10001,
"isProgrammer" : false
}
使用上述变量检查字段类型:
> typeof againCheckType.StudentZipCode; number
现在查看上述输出,"StudentZipCode"字段已从字符串类型更改为数字类型。

