node.js - 删除 Mongoose 中引用的文档

标签 node.js mongodb mongoose

我已使用 $pull 成功删除了父文档的子文档。 现在,我如何删除其自己的架构中的子文档? 如果没有任何意义,我很抱歉,这里是node.js新手。 :)

用户架构

var userSchema = new Schema({
   posts:[{type:Schema.Types.ObjectId,ref:'post'}]
});

后架构

var postSchema = new Schema({
   user:{type:Schema.Types.ObjectId,ref:'user'}
});

删除:

User.findByIdAndUpdate(id, 
   {$pull:{'posts':post_id}},function(err,model){
      if(!err){
         console.log(model);
         resolve(model);
      }
      else{
        reject(err);
      }
});

最佳答案

您可以尝试创建嵌套调用来删除子架构,如下所示:

User.findByIdAndUpdate(id, 
   {$pull:{'posts':post_id}},function(err,model){
      if(!err){
         Post.find({ user : model._id }).remove().exec();
         console.log(model);
         resolve(model);
      }
      else{
        reject(err);
      }
});

关于node.js - 删除 Mongoose 中引用的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392983/

相关文章:

node.js - Nodejs 并不总是显示错误

javascript - 使用 d3v4 .stratify() 嵌套 JSON

linux - 错误: couldn't connect to server 127. 0.0.1:27017——mongodb

angularjs - 更新函数仅在数据库中存储名称属性而不是 url 属性,而是存储未定义

php - Base64 解码在 Node 中的工作方式与在 php、perl 或 python 中不同

node.js - 如何在具有多个 Node 和 socket.io-redis 的 socket.io 中检查套接字是否处于事件状态(已连接)

mongodb - 在 Golang 和 MongoDB 中将路由拆分为单独的包

arrays - 如何使用 mongodb 中的 $ne 查询来查询值数组?

javascript - Mongoose 查询 WHERE 和 OR NOT

mysql - Sequelize 多连接中的排序错误