如何在MongoDB中更改字段的类型?
让我们以将字符串类型转换为整数为例。聚合不允许我们直接更改字段的类型;因此,您需要编写代码来转换字段的类型。
首先,创建一个包含文档的集合。之后我们将获取每个字段的类型。创建包含文档的集合的查询如下所示
>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”字段已经从字符串类型更改为数字类型。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP