更新mongodb

时间:2015-07-01 14:59:26

标签: node.js mongodb express lodash

我想更新mongodb中的条目。但lodash只更新数组中的一个值。我将此对象发送到我的node.js服务器:

{ _id: 5593df7c087e59a00c04cda3,
  name: 'blueberry',
  uuid: 'b9407f30-f5f8-466e-aff9-25556b57fe6d',
  major: '12345',
  minor: '12345',
  position: 'Kantine',
  __v: 18,
  messages:
   [ { _id: 5593df7c087e59a00c04cda4,
       timeRange: [Object],
       url: '',
       message: 'j',
       title: 'jv',
       messageType: 'text' },
     { _id: 5593df7c087e59a00c04cda4,
       timeRange: [Object],
       url: '',
       message: 'j',
       title: 'jv',
       messageType: 'text' } ] }

以下是更新mongodb-entry的代码:

// Updates an existing ibeacons in the DB.
exports.update = function(req, res) {
  Ibeacons.findById(req.params.id, function (err, ibeacons) {
    if (err) { return handleError(res, err); }
    if(!ibeacons) { return res.send(404); }
    var updated = _.merge(ibeacons, req.body);
    updated.save(function (err) {
      if (err) { return handleError(res, err); }
      return res.json(200, ibeacons);
    });
  });
};

但是我得到了这个结果:

{ _id: 5593df7c087e59a00c04cda3,
  name: 'blueberry',
  uuid: 'b9407f30-f5f8-466e-aff9-25556b57fe6d',
  major: '12345',
  minor: '12345',
  position: 'Kantine',
  __v: 18,
  messages:
   [ { _id: 5593df7c087e59a00c04cda4,
       timeRange: [Object],
       url: '',
       message: 'j',
       title: 'jv',
       messageType: 'text' },
     { _id: 5593df7c087e59a00c04cda4,
       timeRange: [Object],
       url: '',
       message: 'j',
       title: 'jv',
       messageType: 'text' } ] }

也许有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

好的,我明白了。 lodash的版本是在2.4.1上,现在我将其更新为3.1.0并且它可以工作。 :d