将字段转换为另一种类型并批量更新整个 collection?

Converting a field to another type and updating the entire collection in Bulk?

在这里,在我的 collection 中,我将 "numerical" 和 "date" 字段另存为字符串,但我希望它们都是整数,我该如何做到这一点。这是我的 collection

{
   "name": "Thyame",
   "salary": "25000",
   "dob": "1988-01-25"
}

预期输出为

{
   "name": "Thyame",
   "salary": 25000,
   "dob": ISODate("1988-01-25T00:00:00.000Z")
}

您可以执行 MongoDB 聚合来更改数据类型并使用 $out 运算符覆盖整个集合。

试试这个:

db.collection.aggregate([
  {
    $project: {
      name: "$name",
      salary: {
        $toInt: "$salary"
      },
      dob: {
        $dateFromString: {
          dateString: "$dob",
          format: "%Y-%m-%d"
        }
      }
    }
  }
//,{$out:"collection"}
])

MongoPlayground

注意:如果取消注释$out,它将覆盖所有具有聚合结果的记录。