如何删除mongoose中的特定子文档

嗨,我是新来的MongoDB和编程。 我想删除特定的父文档中的特定子文档,我正在使用Mongoose和Node.js。 这是我的模式模型(user.js文件):

var userStuff = mongoose.Schema({ itemName: String, itemDesc: String }); var userSchema = mongoose.Schema({ googleEmail: String, googleName: String, stuff: [userStuff] }); exports.user = mongoose.model('User', userSchema); exports.userStuff = mongoose.model('UserStuff', userStuff); 

这是我如何删除:

  var User = require("../../models/user.js"); ... var userId = req.session.passport.user; var deleteItemId = req.params.id; User.user.findOne({_id: userId}, function(err, user){ if(err){ console.log(err); }else { User.userStuff.remove({ _id: deleteItemId}, function(err, data){ if(err){ console.log(err); }else{ user.save(function(err){ if(err){ console.log(err); } else { res.status(200).send(); } }); } }); } }); 

你能告诉我如何删除特定用户的特定项目吗?

要删除特定用户的特定项目,可以使用$pull操作符删除具有primefaces更新的子文档:

 User.user.update( { "_id": req.session.passport.user }, { "$pull": { "stuff": { "_id": req.params.id } } }, function(err, numAffected) { if(err){ console.log(err); } else { res.status(200).send(); } } );