在MongoDB中保存字符串数组-抛出CastError

umuewwlo  于 2023-01-30  发布在  Go
关注(0)|答案(1)|浏览(149)

当我尝试使用$each将项目保存到MongoDB时,我得到了一个CastError。我使用FormData发送数组。如果我在后端显示数组,一切都是正确的。我只是不能将其存储到MongoDB中
前端:

let array = ["ONE","TWO","THREE"]

let data = new FormData();
data.append("tags", JSON.stringify(array));

后端:

const update = await newArt.updateOne(
  {
    $push: {
      tags: {
        $each: [JSON.parse(req.body.tags)],
      },
    },
  },
  { new: true }
);

转换错误:值"['ONE',
路径"tags"处的"TWO"、"THREE"]"(类型数组)
模式:

tags: {
  type: [String],
  require: true
},
e5njpo68

e5njpo681#

您正在使用2个阵列;一个在req.body.tags内部,一个在JSON.parse周围,尝试移除外部:

const update = await newArt.updateOne(
  {
    $push: {
      tags: {
        $each: JSON.parse(req.body.tags),
      },
    },
  },
  { new: true }
);

了解它在playground example上的工作原理

相关问题