如何在mongoose中执行更新

时间:2016-10-14 09:40:19

标签: node.js mongodb mongoose mongoose-schema

我正在尝试更新我的记录,但它没有发生在我的情况下,我不确定它是什么情况下,它可以任何人建议我帮助。谢谢

我的猫鼬代码,

list.Add(costumobject);
.
.
.
dgv.DataSource = list;

};

我的架构,

exports.updatestudent = function (req, res) {
var student = new Student(req.body);
var data = {};
var id = req.params;
var params = req.body;
var item = {
    'name': params.name,
    'rollnumber': params.rollnumber,
    'class': params.class,
    'city': params.city
};
Student.update({ _id: id },{ $set: item }, function (err, result) {
    if (err) {
        console.log('err');
    }
    if (result) {
        data = { status: 'success', error_code: 0, result: result, message: 'Article updated successfully' };
        res.json(data);
    }
});

我的邮差结果,       {       “地位”:“成功”,       “error_code”:0,       “结果”:{         “好的”:0,         “n”:0,         “nModified”:0       },       “消息”:“文章更新成功”     }

我正在尝试更新我的记录,但它没有发生在我的情况下,我不确定它是什么情况下,它可以任何人建议我帮助。谢谢

2 个答案:

答案 0 :(得分:2)

确保您在id

中收到var id = req.params;
  

我相信你不会得到id这样的

检查您的req.params;值并在查询中提供正确的ID

<强>更新

var item = {};

if (params.name) {
  item.name = params.name;
}
if (params.rollnumber) {

  item.rollnumber = params.rollnumber
}


Student.update({
  _id: id
}, {
  $set: item
}, function(err, result) {
  if (err) {
    console.log('err');
  }
  if (result) {
    data = {
      status: 'success',
      error_code: 0,
      result: result,
      message: 'Article updated successfully'
    };
    res.json(data);
  }
});

答案 1 :(得分:2)

似乎你忘了指定密钥。

替换

var id = req.params;

通过

var id = req.params.id;