如何将字符串更新为数字字段

How update string to number field

/* 1 */
{
    "_id" : ObjectId("62622dd73905f04f59db2971"),
    "array1" : [ 
        {
            "_id" : "21",
            "array2" : [ 
                {
                    "_id" : "123",
                    "answeredBy" : [ 
                        "success"
                    ]
                }, 
                {
                    "_id" : "124",
                    "answeredBy" : []
                }
            ]
        }
    ]
}

/* 2 */
{
    "_id" : ObjectId("626230e03905f04f59db29f5"),
    "array1" : [ 
        {
            "_id" : "22",
            "array2" : [ 
                {
                    "_id" : "223",
                    "answeredBy" : []
                }, 
                {
                    "_id" : "220",
                    "answeredBy" : []
                }
            ]
        }
    ]
}

如何转换 “_id”:“21”和“_id”:“22”, 到 “_id”:21,“_id”:22,

这是一种方法。

db.collection.update({
  "array1._id": { "$exists": true }
},
[
  {
    "$set": {
      "array1": {
        "$map": {
          "input": "$array1",
          "as": "elem",
          "in": {
            "$mergeObjects": [
              "$$elem",
              { "_id": { "$toInt": "$$elem._id" } }
            ]
          }
        }
      }
    }
  }
],
{
  "multi": true
})

mongoplayground.net 上试用。