我有一些问题,删除数组中的对象,如果“iduser”无效或有效且该对象未在Modification doc和Account doc中删除,则该API的结果始终为“修改已删除”
这是我的主要文件
let Account = new Schema({
firstName : {type : String, required : true},
lastName : String,
email : {type : String, required : true},
profilePicture : {type : String, required : true},
gender : {type : String, required : true},
id : {type : String, required : true},
location : String,
birthday : Date,
experiences : [Number],
achievements : [Number],
modifications : {type : [Schema.Types.ObjectId], ref : 'Modification'}
},{usePushEach: true});
这个我要删除的数组对象
let modificationSchema = new Schema({
desc : {type : String, required : true},
make : {type : String, required : true},
type : {type : String, required : true},
photo : {type : String, required : true},
postDate : {type : Date, required : true},
likes : {type : [Schema.Types.ObjectId], ref : 'Like'},
comments : {type : [Schema.Types.ObjectId], ref : 'Comment'}
},{usePushEach: true});
这是我从Account对象中删除修改对象的代码
api.put('/modification/:iduser/:idmodif' , (req,res) =>{
Account.findOneAndUpdate({"email":req.params.iduser},
{ $pull : { modifications : { _id : req.params.idmodif}}},
function(err,model){
if(err){
return res.send(err);
}else{
res.json({message : "modification deleted"});
}
}
);
});
谢谢你的帮助:)
你可以使用标准技术
api.put('/modification/:iduser/:idmodif' , (req,res) =>{
Account.findById({_id:req.params.iduser},
function(err,model){
model.modifications = null;
model.save(function(err,result){
if(err){
return res.send(err);
}else{
res.json({message : "modification deleted"});
}
});
}
);
});