图像未从节点 js 中的数据库中删除
Image is not deleting from database in node js
我正在研究 node.js 表达框架和猫鼬,我对它完全陌生。
这是我的架构。
const mongoose = require('mongoose');
const ActivitySchema = mongoose.Schema({
_id: mongoose.Schema.ObjectId,
Activity:String,
Photos:[{
Photo:String,
}]
});
module.exports = mongoose.model('Activity', ActivitySchema);
这是我的 code.I 删除成功,但数据未从数据库中删除。
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) },
...
)
要获取文档的新版本,应用更新后,将 {new: true}
放入查询中。默认为 false。
Activities.findByIdAndUpdate(
{ _id: req.params._id },
{ $pull: { Photos: { _id:req.params._pid } } },
{new : true},
function(err,user) {
if(err) {
res.status(500).json(err);
}
res.status(200).json(user)
}
);
})
我正在研究 node.js 表达框架和猫鼬,我对它完全陌生。 这是我的架构。
const mongoose = require('mongoose');
const ActivitySchema = mongoose.Schema({
_id: mongoose.Schema.ObjectId,
Activity:String,
Photos:[{
Photo:String,
}]
});
module.exports = mongoose.model('Activity', ActivitySchema);
这是我的 code.I 删除成功,但数据未从数据库中删除。
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) },
...
)
要获取文档的新版本,应用更新后,将 {new: true}
放入查询中。默认为 false。
Activities.findByIdAndUpdate(
{ _id: req.params._id },
{ $pull: { Photos: { _id:req.params._pid } } },
{new : true},
function(err,user) {
if(err) {
res.status(500).json(err);
}
res.status(200).json(user)
}
);
})