Как использовать значения из 2d-массива в запросе mon goose findByIdAndUpdate? - PullRequest
0 голосов
/ 29 мая 2020

Я пишу запрос к api на обновление полей объекта продукта, который хранится в mongodb. Я не знаю, какие поля пользователь собирается обновить заранее, поэтому в почтовом запросе я использую 2d-массив, который содержит имя поля и новое значение. Несмотря на несколько попыток, мне не удалось правильно реализовать данные из массива в моем запросе findByIdAndUpdate. Запрос на размещение, который я отправляю в api, выглядит следующим образом:

{"_id": "5eceasd", "Fields":[ ["Title", "Test title"], ["Location", "Adress 1"], ["Price", "222"] ]} 

Метод обновления:

exports.updateProduct = (req, res) => {
  const { _id , Fields} = req.body;
  var ark = Fields[1][1];

  Product.findByIdAndUpdate({ _id }, {Fields}, (err, product) => {
    if (err || !product) {
      return res.status(400).json({
        error: "Error updating the product",
      });
    }
    return res.json({ product, message: "Product updated" });
  });

};

Делая это с известными значениями и полями, я бы просто использовал:

Product.findByIdAndUpdate({ _id }, {"Title": "Test title", "Price": "23"}, (err, product) => 

Но я не знаю, как правильно ввести значения из 2-го массива в параметры.

...