【问题标题】:Remove single quotes in the array mongodb删除数组mongodb中的单引号
【发布时间】:2023-01-07 01:26:29
【问题描述】:
db.test.find().pretty();
[
  {
    _id: ObjectId("63b84e6d5bc77784ee5ecdf6"),
    demographic: { first_name: 'Srikanth', last_name: 'R' },
    change_history: '[{"change":"Gold"},{"change":"Silver"}]'
  },
  {
    _id: ObjectId("63b84e6d5bc77784ee5ecdf7"),
    demographic: { first_name: 'Sri', last_name: 'K' },
    change_history: '[{"change":"Gold"},{"change":"Platinum"}]'
  }
]

我可以知道如何删除change_history 中的单引号吗?实际上需要是一个数组

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    第一步可能是找出是什么创建了 "change_history" 作为字符串并修复它。

    update 当前文档的最简单方法可能是在管道中使用 "$function" 并让 javascript parse 字符串,就像这样。

    db.test.update(
    {
      "change_history": {"$type": "string"}
    },
    [
      {
        "$set": {
          "change_history": {
            "$function": {
              "body": "function(chgHist) {return JSON.parse(chgHist)}",
              "args": ["$change_history"],
              "lang": "js"
            }
          }
        }
      }
    ],
    {"multi": true}
    )
    

    示例输出:

    [
      {
        "_id": ObjectId("63b84e6d5bc77784ee5ecdf6"),
        "change_history": [
          {"change": "Gold"},
          {"change": "Silver"}
        ],
        "demographic": {
          "first_name": "Srikanth",
          "last_name": "R"
        }
      },
      {
        "_id": ObjectId("63b84e6d5bc77784ee5ecdf7"),
        "change_history": [
          {"change": "Gold"},
          {"change": "Platinum"}
        ],
        "demographic": {
          "first_name": "Sri",
          "last_name": "K"
        }
      }
    ]
    

    试试mongoplayground.net

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2021-11-29
      • 2019-06-04
      • 2020-02-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-22
      相关资源
      最近更新 更多