簡體   English   中英

express js中的update(PUT)數組

[英]updating(PUT) array in express js

我正在使用expressjs(nodejs)。 我正在嘗試在更新現有數據( dealtypedealprice )時存儲數組數據,但是無法這樣做。

我現有的數據集

{
 "_id": "56a59a2923e047bc2128cd99",
 "foodImageUrl": "modules/foods/client/img/food.jpg",
 "deal": [
  {
   "_id": "56a59a2923e047bc2128cd9a",
   "dealprice": "asd",
   "dealtype": "asd"
  }
 ],
 "name": "ads",
 "created": "2016-01-25T03:44:41.346Z"
}

我的expressjs控制器

exports.update = function (req, res) {
var food = req.food;

  food.name = req.body.name;
  food.deal.dealtype = req.body.deal.dealtype;
  food.deal.dealprice = req.body.deal.dealprice;
  food.foodImageUrl = req.body.foodImageUrl;

  food.save(function (err) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.json(food);
    }
  });
};

一種更新現有文檔的方法。 首先,找到需要通過_id或其他關鍵字更改的文檔。 這是_id一個示例。

Food.findOne({_id: req.food._id}, function(err, food) {
  food.name = req.body.name;
  food.deal.dealtype = req.body.deal.dealtype;
  food.deal.dealprice = req.body.deal.dealprice;
  food.foodImageUrl = req.body.foodImageUrl;

  food.save(function (err) {
    if (err) {
      return res.status(400).send({
        message: errorHandler.getErrorMessage(err)
      });
    } else {
      res.json(food);
    }
  });
});

或者只是使用findOneAndUpdate來更新現有文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM