如何在Mongodb中将字符串数据类型大量更改为int?

Posted

技术标签:

【中文标题】如何在Mongodb中将字符串数据类型大量更改为int?【英文标题】:How can I change the string data type to int massively in Mongodb? 【发布时间】:2022-01-16 14:53:01 【问题描述】:

我有一个类似这样的数据库:


        "_id" : ObjectId("61b69c02f92253fbe1017f23"),
        "nombre" : "Judd",
        "primer_apellido" : "Saterthwait",
        "segundo_apellido" : "Wabb",
        "identificacion" : "929499610",
        "genero" : "M",
        "edad" : "22",
        "seguridad_social" : "0",
        "telefono" : "4796610146",
        "banco" : "BANK OF AMERICA",
        "cuenta" : "36687045607282",
        "ciudad" : "Lihu",
        "desarrollador" : "senior",
        "trabaja_en" : "Thoughtsphere",
        "correo" : "jwabb3j@admin.ch",
        "pass" : "aea6d8bed55166ecde96d8ca1c687234",
        "fec_ultimo_acceso" : "2021-04-30",
        "tiene_hijos" : "1",
        "carnetizado" : "0",
        "activo" : "0",
        "reportes" : "1"


        "_id" : ObjectId("61b69c02f92253fbe1017f39"),
        "nombre" : "Alleyn",
        "primer_apellido" : "Corneljes",
        "segundo_apellido" : "Andrivel",
        "identificacion" : "615842724",
        "genero" : "M",
        "edad" : "46",
        "telefono" : "6722395057",
        "banco" : "CITYBANK",
        "cuenta" : "4508531326650291",
        "ciudad" : "Sambonggede",
        "desarrollador" : "senior",
        "trabaja_en" : "Skyndu",
        "correo" : "aandrivelat@wix.com",
        "pass" : "a16ebf90ff6d116d220db8ede95ae253",
        "fec_ultimo_acceso" : "2021-04-30",
        "tiene_hijos" : "1",
        "carnetizado" : "1",
        "activo" : "0",
        "reportes" : "2"


        "_id" : ObjectId("61b69c02f92253fbe1017f75"),
        "nombre" : "Tessa",
        "primer_apellido" : "Biesinger",
        "segundo_apellido" : "De Meis",
        "identificacion" : "12958583",
        "genero" : "F",
        "edad" : "50",
        "seguridad_social" : "1",
        "telefono" : "7465255759",
        "banco" : "GM2",
        "cuenta" : "6709265650990708",
        "ciudad" : "Wuyang",
        "desarrollador" : "junior",
        "trabaja_en" : "Babbleset",
        "correo" : "tdemeis7s@wired.com",
        "pass" : "0f4e5cee2132609be62102ab945c723a",
        "fec_ultimo_acceso" : "2021-04-30",
        "tiene_hijos" : "1",
        "carnetizado" : "0",
        "activo" : "1",
        "reportes" : "2"

发生的情况是,在“edad”键(英语中的年龄)中,它是一个数字,但在字符串中,例如:“45”。我想将存储在数据库中的所有对象的数据类型从字符串“45”更改为数字 45。我该怎么做? (我认为是 forEach)

【问题讨论】:

【参考方案1】:

查询

管道更新需要 MongoDB >= 4.2 使用 $toInt 聚合运算符将年龄字段从字符串更改为整数,更改为所有文档( 匹配全部)。 使用驱动程序的updateMany 方法或设置选项"multi" : true 更新所有文档。

Test code here

update(,["$set": "edad": "$toInt": "$edad"],"multi" : true)

【讨论】:

非常感谢

以上是关于如何在Mongodb中将字符串数据类型大量更改为int?的主要内容,如果未能解决你的问题,请参考以下文章

使用 java 在 Micronaut 中将 MongoDb ObjectId _id 更改为字符串

MongoDB如何将数组中的字段类型从字符串更改为数组并保持原始值

在熊猫中将数据类型从对象更改为字符串

如何在 SQL 中将列数据类型更改为 DOUBLE?

如何在 AIX 终端中将大量 .pdf 更改为 .PDF 文件

在 PostgreSQL 中将数据类型“Varchar”更改为“TimeStamp”