【发布时间】:2021-09-05 21:21:05
【问题描述】:
我有一个小问题,我一直在尝试解决一段时间,尽管几乎到处都在网上搜索,但我找不到解决问题的方法。
我有 2 个猫鼬模式。一个“发布”模式和一个“标签”模式。
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 并将 ID 的数组发送到POST 请求。
这是我得到的确切错误: 'tags.0': CastError: Cast to [ObjectId] failed for value "["60d193ab04caf9336cc9169b,60d193b504caf9336cc9169c"]" (type string) at path "tags.0"
这两个 ID 都存在于 Tag 集合中。如果我在请求中只发送一个 Id,它可以工作,但如果我发送一组 Id,它就不行。
我想到的是它发送一个由单个字符串组成的数组,而不是一个字符串数组(其中每个字符串都是 ID)。
有人可以帮我找出问题所在吗?非常感谢。
【问题讨论】: