Node.js 如何使用mongoose从mongodb中userschema中的数组中删除对象?
用户模式 Completed tasks是我试图从中删除的数组Node.js 如何使用mongoose从mongodb中userschema中的数组中删除对象?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,用户模式 Completed tasks是我试图从中删除的数组 var mongoose = require("mongoose"); var passportLocalMongoose = require("passport-local-mongoose"); var userSchema = new mongoose.Schema({ username: String, password: String, completedtasks :
var mongoose = require("mongoose");
var passportLocalMongoose = require("passport-local-mongoose");
var userSchema = new mongoose.Schema({
username: String,
password: String,
completedtasks : [{task : String , time : String}] ,
});
userSchema.plugin(passportLocalMongoose);
module.exports = mongoose.model("User", userSchema);
试图从阵列中删除已完成任务的路由器代码
:id是存储在completedtasks数组中的任务的id
:uid是用户的id
我的目标是从已完成的任务数组中删除任务
但猫鼬文件并没有起到多大作用
我尝试了founduser.remove而不是update,它意外地删除了我的测试用户帐户,该帐户包含大量数据,因此我不再进行实验
router.put('/:id/deletectask/:user' , (req , res) =>{
var tid = req.params.id ;
var uid = req.params.user;
User.findById(uid , function(err , founduser){
if(err){console.log(err)}
else{
founduser.update( {} ,
{ $pull: {completedtasks : {_id : tid} }}
) ;
res.redirect('/'+uid+'/ctl')
}
} )
})
您可以这样做,在一个查询中:
User.update({
_id: uid
}, {
"$pull": {
"completedtasks": {
"_id": tid
}
}
},
(err, result) => {
//do something here
})
非常感谢Karl,遗憾的是,我不得不以艰苦的方式学习这一点,并花费了大量的时间,我完成了Colt Steele的webdev训练营,目前正在进行我的第一个项目
谢谢你的帮助。不客气。如果你投票并接受答案会很有帮助,这样也会帮助其他有类似问题的用户,谢谢,这是你的第二个帐户吗?看起来我不小心用另一封电子邮件登录了。