【发布时间】:2019-06-11 13:45:30
【问题描述】:
我在数组中的正文中收到名称(字符串),并且我想将每个数组转换为我的集合中的对象 ID。
我想将Strings引用到Schema,并将其替换为它的ObjectId,
这是我的架构:
var tagSchema = new Schema({
name: {
type: String,
required: true
}
});
这是我在我的 api 中所做的:
var tags = req.body.tags;
tags.forEach((item, index) => {
Tag.findOne({name: item}, (err,result)=> {
tags[index] = result._id;
});
})
但是在我的控制台中,我收到了这个错误:
CastError: 路径“tags”处的值“['tag1','tag2']”转换为数组失败
这是我记录标签的时间:
['tag1', 'tag2']
似乎是什么问题?
提前致谢!
【问题讨论】:
-
能否请
console.log(tags)告诉我们结果? -
@Sridhar 问题已编辑。
-
我认为你没有得到结果。 findOne 中的控制台错误和结果
-
@MonicaGarud 结果工作正常,错误提示: CastError: Cast to Array failed for value "[ 'tag1', 'tag2' ]" at path "tags"
-
@HamedJavaheri 标签是字符串数组,您将 ObjectId 推入其中。声明用于存储 objectId 的新数组
标签: javascript arrays node.js express