Mongoose:(CastError)值转换为[ObjectId]失败



我有一个小问题,我已经试着解决了一段时间,尽管我几乎到处都在网上查找,但我找不到问题的解决方案。

我有两个猫鼬模式。一个";张贴";模式和一个";标记";架构。

const postSchema = new Schema({
creator:{type:mongoose.Types.ObjectId, required:true, ref:'User'},
type:{type:String, required:true},
title:{type:String, maxlength:14},
description:{type:String, maxlength:1140},
content:{type:String},
tags:[{type:mongoose.Types.ObjectId, ref:'Tag'}],
date:{type:Date},
});
const tagSchema = new Schema({
name:{type:String, required:true, unique:true},
bgImages:[{type:String}],
posts:[{type:mongoose.Types.ObjectId, ref:'Post'}],
});

当我创建一个新的帖子时,我希望能够在帖子中的标签数组中添加多个标签,所以我尝试做的是找到用户选择的标签的ID,并在post请求中发送ID数组。

这正是我得到的错误:'tags.0':CastError:值"的强制转换为[ObjectId]失败;["60d193ab04caf9336cc9169b,60d193b504caf9316cc9169C"]";(类型字符串(在路径"处;标签.0">

这两个ID都存在于Tag集合中。如果我在请求中只发送一个Id,它会起作用,但如果我发送一个Id数组,它就不会起作用。

我想的是,它发送一个由单个字符串组成的数组,而不是一个字符串数组(每个字符串都是ID(。

有人能帮我弄清楚出了什么问题吗?非常感谢。

发现问题。正如我所想的,这是因为我发送的是一个包含单个字符串的数组,而不是原子字符串的数组。

不得不用"以解决问题。

相关内容

最新更新