【发布时间】:2021-01-09 00:26:22
【问题描述】:
我一直在尝试从数组中删除元素,似乎它不起作用,这是模型 1。问题模型
{
reviews: [{ type: ObjectID, ref: 'Review' }]
}
2。审查模型
{
description: {
type: String
},
userId: {
type: ObjectId,
ref: 'User'
}
}
这是我为 Quuestion.js 提供的服务
export const deleteReview = async ({ reviewId, id }, user) => {
try {
const result = await Question.updateOne(
{ _id: id },
{
$pull: { reviews: { _id: reviewId, userId: user._id } }
}
).exec();
if (result.nModified === 0) {
throw new APIError({ message: msg('Unauthorized'), status: 401 });
}
return result;
} catch (error) {
throw error;
}
};
路线文件
router.delete('/questions/:id/reviews/:reviewId', auth, async (req, res) => {
try {
const {
params,
user
} = req;
const data = await deleteReview( params,
user);
return res.status(200).json({ data });
} catch (err) {
error(res, err);
}
});
我试图删除元素,但它根本没有删除,我不知道我在哪里做错了。
【问题讨论】:
-
尝试遵循此问题的最佳答案,这似乎与您正在做的事情很接近:stackoverflow.com/questions/48988019/…
-
我也遵循同样的方法,似乎 $pull 运算符仅通过指定查询来删除元素,@kibe