从猫鼬中另一个数组内部的数组中删除元素

fabioDM费雷拉

问题是我无法使用下一个架构从猫鼬对象中删除附件。

var question=mongoose.Schema({
   _id:mongoose.Schema.Types.ObjectId
   answers:[{
     _id:mongoose.Schema.Types.ObjectId
     attachments:[
      _id:mongoose.Schema.Types.ObjectId
     ]
   }]
});

我尝试使用下一个代码从文档中删除附件。

Question.update({ 
  _id: req.params.idQuestion, 
  'answers._id': req.params.idAnswer 
}, { 
  $pull: { 
    'answers.$.attachments':{_id:req.params.idAttachment}
  } 
}, function (err, updated) {
  if(err){
    return res.status(400).send(err);
  }
  else if(!updated.nModified){
    return res.status(400).send('Question hasn\t been updated.');
  }
  
  res.send(200);
  
});

我以为我的查​​询不正确,因此尝试在mongo shell中执行此操作。它工作得很好。

db.questions.update({
  _id:ObjectId('xx'),
  'answers._id':ObjectId('yy')
},{
  $pull:{
    'answers.$.attachments':{_id:ObjectId('zz')}
  }
})

有人可以帮助我解决这个问题吗?

Mi Ke Bu

尝试这个:

var qid=req.params.idQuestion,
    aid=req.params.idAnswer;
//find
Question.find({ 
  _id: qid, 
  'answers._id': aid 
},{
   answers:1
},function(err,question){
   //change
   var answers=question.answers.filter(function(el){
          return el._id!=aid;
       });
   //update
   Question.update({
      _id: qid, 
   },{$set:{
      answers:answers
   }},function(err,updated){
      ...//your callback here
   });
});

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从猫鼬中的另一个数组匹配数组元素/元素(至少一个)

更新猫鼬文档中另一个数组内的数组中的字段

猫鼬。如何更新包含在另一个数组中的数组元素?

猫鼬,更新另一个数组内的数组中的对象

猫鼬查询一个数组包含另一个数组中的值

删除另一个数组中的元素

如何使用猫鼬聚合获取嵌套在另一个数组中的数组大小

如何从数组中删除元素,哪些元素是另一个数组?

根据另一个数组的空元素从数组中删除元素

基于Javascript中的另一个数组删除数组中的元素

删除另一个数组列表中存在的数组列表中的元素

从另一个数组中存在的Javascript数组中删除元素

Perl将元素推入另一个数组内部的数组中

使用isSame函数从momnet的另一个数组元素中删除一个数组元素

从一个数组中删除另一个数组中的元素

iOS快速从另一个数组中删除数组的元素

删除另一个数组中存在的数组元素

从另一个数组中删除数组元素

redux - 如何删除嵌套到另一个数组的数组中的元素

redux - 如何删除嵌套到另一个数组的数组中的元素

如何删除一个数组中的元素以便另一个数组

从另一个数组列表中删除一个数组列表元素的最佳方法

如何通过与另一个数组比较从一个数组中删除公共元素

从另一个数组中删除一个数组中的值

从另一个数组中删除一个数组的内容

从另一个数组中删除一个numpy数组中元素的有效方法

删除另一个数组内的数组中的第一个元素

使用猫鼬返回另一个对象数组中的最后一项

删除另一个数组中包含的所有元素