我想从数组中删除一个对象。首先,我想通过ID找到客户,然后在购物车数组中的客户模型中,我想根据ID删除一个项目。
这是客户模型中的推车阵列:
carts: [
{
items: {
type: mongoose.Schema.Types.ObjectId,
ref: "Cart",
},
amount: { type: Number, default: 1 },
},
],
字符串
这是删除控制器:
//delete bag item
export const deleteCartItemCtrl = asyncHandler(async (req, res) => {
const { userId, id } = req.body;
try {
const user = Customers.updateOne(
{ _id: userId },
{
$pull: {
carts: { items: [{ _id: id }] },
},
}
);
res.json({
status: "success",
message: "cartItem delete successfully",
});
} catch (error) {
console.log(error),
res.status(500).json({
status: "error",
message: "An error occurred while cart item delete",
});
}
});
型
我使用了“pull”,但是我想要删除的项目没有被删除。
2条答案
按热度按时间093gszye1#
看看你的schema,你有一个
carts
对象数组,每个对象都有一个items
属性,它的类型是ObjectId
。你可以使用findByIdAndUpdate
,你需要await
,然后$pull
对象形成数组,如下所示:字符串
hivapdat2#
你可以试试这个:
字符串
这将从购物车数组中删除该项目。