首页 > 解决方案 > MongoDB:批量更改python中的所有字段类型

问题描述

我有大量文档(大约 1000 万份),我需要更改它们的字段类型。通常的 forEach 函数(只是循环遍历每个值)似乎要花很长时间,而且在我拥有的时间范围内显然是不可行的(它基本上花了整夜进行四分之一的更新)

我听说bulkwrites 可以做到这一点,但我收到的信息不一。例如,我在这个网站上看到了一个令人困惑的答案,说没有书面函数可以做到这一点(你必须做一些解决方法),其他人说它可以通过 Python 中的更新来完成,使用 pymongo。

我想知道是否有一种更快的方法来使用 python 批量更改字段类型(字符串-> 双精度、字符串-> int)?我也可以从控制台工作,但在那里找到的解决方案更少。

谢谢

标签: mongodbnosql

解决方案


您可以尝试在 mongo shell 中使用聚合查询

就像是

db.your_collection.aggregate([
  {
    $addFields: {
      field1: {
        $convert: {
          input: "$field1",
          to: "string"
        }
      }
    }
  },
  { $out: "your_collection" }
])

更多信息在这里https://docs.mongodb.com/manual/reference/operator/aggregation/convert/


推荐阅读