gpt4 book ai didi

node.js - 图像未从 Node js中的数据库中删除

转载 作者:太空宇宙 更新时间:2023-11-04 01:47:05 25 4
gpt4 key购买 nike

我正在研究 Node.js Express 框架和 mongoose,我对它完全陌生。 这是我的架构。

const mongoose = require('mongoose');

const ActivitySchema = mongoose.Schema({
_id: mongoose.Schema.ObjectId,
Activity:String,
Photos:[{
Photo:String,
}]
});

module.exports = mongoose.model('Activity', ActivitySchema);

这是我的代码。我删除成功,但数据未从数据库中删除。

router.delete('/removeactivity/:_id/:_pid', function (req, res) {         
Activities.findByIdAndUpdate(
{ _id: req.params._id },
{ $pull: { Photos: { _id:req.params._pid } } },
function(err,user) {
if(err) {
res.status(500).json(err);
}
res.status(200).json(user)
}
);
})

最佳答案

您正在使用 mongoose.Schema.ObjectId,因此您的 _id 字段是一个 ObjectId。在delete逻辑中,您选择req.params._id,我猜它是一个字符串,而不是ObjectId,所以它不起作用。

要从字符串创建 ObjectId,请使用 mongoose.Types.ObjectId,如下所示:

Activities.findByIdAndUpdate(
{ _id: mongoose.Types.ObjectId(req.params._id) },
...
)

关于node.js - 图像未从 Node js中的数据库中删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51041988/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com