javascript - 如何将字符串转换为 int MongoDB 数组

标签 javascript mongodb

在我的项目中,我有一个 excel 文件,该文件被转换为 mongodb 结构数据。

这是一个示例行:

appartamento:{
    nome: 'Appartamento',
    via: 'Via Roma 120',
    ids_stile: '2, 3 11',
    ids_personaggi: '8, 9, 21'
}

其中“ids_stile”和“ids_personaggi”是字符串。

是否可以将整数集合中的 ids_stile 和 ids_personaggi 转换为具有这样的结构?

appartamento:{
    nome: 'Appartamento',
    via: 'Via Roma 120',
    ids_stile: [2, 3,  11],
    ids_personaggi: [8, 9, 21]
}

谢谢

最佳答案

如果您想使用 mongo 来执行此操作,请尝试以下查询:

db.collection.aggregate([
  {
    "$match": {
      "id": 0
    }
  },
  {
    "$set": {
      "appartamento.ids_stile": {
        "$split": [
          "$appartamento.ids_stile",
          ","
        ]
      },
      "appartamento.ids_personaggi": {
        "$split": [
          "$appartamento.ids_personaggi",
          ","
        ]
      }
    }
  },
  {
    "$project": {
      "appartamento.ids_stile": {
        "$map": {
          "input": "$appartamento.ids_stile",
          "as": "newArray",
          "in": {
            "$convert": {
              "input": "$$newArray",
              "to": "int",
              
            }
          }
        }
      },
      "appartamento.ids_personaggi": {
        "$map": {
          "input": "$appartamento.ids_personaggi",
          "as": "newArray",
          "in": {
            "$convert": {
              "input": "$$newArray",
              "to": "int",
              
            }
          }
        }
      },
      "appartamento.nome": 1,
      "appartamento.via": 1
    }
  }
])

基本上就是获取您想要的文档(我使用了 appartamento.nome 但您可以通过 _id 或任何您想要的内容进行匹配)。
然后,使用 $set$split 修改字段,创建一个以 ',' 分隔的字符串数组。
之后,项目字段使用 $map 使用新数组覆盖这两个字段,其中字符串数组中的每个值现在都转换为 int

示例 here

编辑:

要对许多文档执行此操作,只需删除 $match 阶段。

示例 here

关于javascript - 如何将字符串转换为 int MongoDB 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64767861/

相关文章:

javascript - 我应该在 Angular 中使用数组表示法吗?

mongodb - 在 MongoDB 中删除大集合的最佳方法

C# MongoDB LINQ : Cannot query nested list

javascript - CocoonJS 和 Facebook 扩展权限

javascript - WordPress 中的 AJAX 仅返回 0

python - MongoDB:更新文档中数组中的字典

node.js - 在 MongooseJS 中创建模型时的第三个参数

mongodb - 在 Mongodb : use remove or dropDatabase to empty a database? 或两者中?

javascript - 如何根据$group对多个字段进行$count和$total

javascript - 我的按钮没有改变功能