javascript - 删除父 Mongoose 模式数组内子模式中的单个行

标签 javascript node.js mongodb mongoose

我想根据某些字段删除子架构的行,并且架构位于父架构的数组内。我尝试使用下面的代码但失败了。任何人都可以解决这个问题吗 //代码详细信息 use_list 是父模式,其中名为 frr_list 的数组字段具有数组元素作为 schemas 。我想根据 fren_id 删除该子模式的单独行。 //

//main parent schema
var user_list = new Schema({
  user_id: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'user_reg'
  },
  fren_list: [fren_list],
  block_list: [fren_block_list],
  frr_list: [fern_req_recieved_list], //asking about this array 
  frs_list: [fern_req_sent_list],
});


//child schema
var fern_req_recieved_list = new Schema({ //fren req list
  fren_id: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'user_reg'
  },
  fren_name: String,
  dt: {
    type: Date,
    default: Date.now
  },
  status: {
    type: String,
    default: "pending"
  } //pending, rejected,accepted

});


User.list.findOne({ //parent document
  user_id: currentUserId
}, function(err, user) {
  ///below is child inside the array field and is schema
  user.frr_list.findOneAndRemove({
    fren_id: requestedUserId
  }, function(err, message) {
    if (err) {
      callback(null, false);
    } else {
      callback(null, true);
    }
  })
});

最佳答案

据我了解,您可以像这样删除 frr_list 数组的各个项目:

我假设您将通过frr_id(即由mongoose生成的_id)删除frr_list的各个项目

<p></p>

<p>User.update({ _id: userListId,
                user_id:currentUserId
                //filter record by userListId and currentUserId
            },</p>

        { //now pull the required row from the array based on _id of array
        $pull: { frr_list: { _id: frr_id } } },
        function(err,result){
            if(result.ok==1 && result.nModified==1 && result.n==1)
                //successfully deleted
            else if(result.ok==1 && result.nModified==0 && result.n==0)
               //no record exist
            else
               //something goes wrong
        });

关于javascript - 删除父 Mongoose 模式数组内子模式中的单个行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32870082/

相关文章:

javascript - Jquery 计算问题(返回 NaN)

javascript - 自定义格式的 Mongoose 聚合结果

mongodb - 为什么在聚合查询中 $avg 会得到 "-Infinity"结果?

javascript - 在同一页面上将参数从 php 传递到 javascript

javascript - 按钮 onclick 使其他脚本停止运行

javascript - 重新连接后未触发 socket.io 'connect' 或 'reconnect' 事件

javascript - Node.js:使用 Mongoose 更新文档

java - Android Studio 连接MongoDB : Gradle build finished with 1 error

javascript - 通过 jQuery 或 CSS3 从右向左滑动一个 div

javascript - 使用 Sequelize + multer 在 SQL 中记录图像名称的问题