2015-07-21 124 views
2

我需要批量删除feedback s到article,commentreply实体。这是我实现猫鼬无法更新我的文档

exports.batchDeleteFeedback = function(req, res, next) { 
    var articleId = req.body.articleId 
    var commentId = req.body.commentId 
    var replyId = req.body.replyId 

    var Target, targetId, field 
    if (articleId) { 
     Target = Article 
     targetId = articleId 
     field = 'article' 
    } 
    else if (commentId) { 
     Target = Comment 
     targetId = commentId 
     field = 'comment' 
    } 
    else if (replyId) { 
     Target = Reply 
     targetId = replyId 
     field = 'reply' 
    } 


    var criteria = {} 
    criteria['target.' + field] = targetId 

    Feedback.update(criteria, {$set: { 
     'status': 'deleted' 
     ,'status.deletedBy': req.user 
     ,'status.deletedDate': new Date 
    }}, {multi: true}, function(err) { 
     if (err) 
      return next(err) 

     Target.findById(targetId).exec(function(err, target) { 
      if (err) 
       return next(err) 

      var json = target.toJSON() 
      json.success = 'success batch delete feedbacks' 
      return res.json(json) 
     }) 
    }) 
} 

而且我得到这个错误消息

cannot use the part (status of status.deletedBy) to traverse the element ({status: "deleted"}) 

什么是我的代码的问题?

回答

3

你治疗status财产一个字符串(通过设置两个属性,deletedBydeletedDate),这没有任何意义(将其设置为deleted的对象。

+0

通过一些搜索,我可以看到许多带'''符号的代码,比如'status。$。deletedBy'。这是什么意思? – OMGPOP

+0

@OMGPOP看到[精细的手册](http://docs.mongodb.org/manual/reference/operator/update/positional/#update-documents-in-anray) – robertklep

+0

啊所以它是mongodb不mongoose。难怪我无法找到它 – OMGPOP