我知道有很多关于这个的主题,但我没有找到任何解决我的问题的方法,虽然。
为了训练我的JS技能,我决定创建一个报价生成器,所以我创建了API和前端。
所以,直到现在,一切都运行得很完美,但当我决定创建一个“类别”系统时,我的问题就来了。
其原理是创建一个类别标题,然后每次将类别赋予一个引用时,数据库中一个名为“quoteId”的数组将被更新以存储引用ID。
下面是mongoDB中Category的模型:
const mongoose = require('mongoose');
const categorySchema = mongoose.Schema({
title: { type: String, required: true },
quoteId: { type: Array, required: false },
userId: { type: Array, required: false },
});
module.exports = mongoose.model('Category', categorySchema);
现在,更新category集合中的quoteId数组的代码:
exports.setCategoryProduct = (req, res) => {
Category.updateOne(
{ title: req.params.categoryTitle },
{ $addToSet: { quoteId: req.body.quoteId } }
)
.then(() =>
res.status(201).json({ message: 'Category updated !', status: 201 })
)
.catch((error) => res.status(500).json({ error: error, status: 500 }));
};
因此,当我在POSTMAN中执行PUT请求时,它返回“Category updated”消息,但当我检查集合时,我可以看到quoteId仍然为空...我不明白为什么它不更新,而请求似乎是成功的...
感谢你们所有人的帮助。
1条答案
按热度按时间pu82cl6c1#
替换此
用这个代码
根据mongodb文档