繁体   English   中英

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

[英]How to delete particular subdocument in mongoose

嗨,我是MongoDB和编程的新手。 我正在尝试删除特定父文档中的特定子文档,我正在使用Mongoose和Node.js. 这是我的Schema模型(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运算符删除具有原子更新的子文档:

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();
        }
    }
);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM