MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Node.js - Mongoose - Актуализиране на вложен масив с всички стойности в req.body

Ще трябва да използвате $ позиционен оператор във вашия $set . За да присвоите тези свойства динамично, въз основа на това, което е във вашето req.body , ще трябва да изградите своя $set програмно.

Ако искате да актуализирате името, ще направите следното:

Location.update(
  { 'competitors._id': req.params.competitorId },
  { $set:  { 'competitors.$.name': req.body.name }},
  (err, result) => {
    if (err) {
      res.status(500)
      .json({ error: 'Unable to update competitor.', });
    } else {
      res.status(200)
      .json(result);
    }
 }
);

Един от начините можете програмно да изградите $set използвайки req.body е като направите следното:

let updateObj = {$set: {}};
for(var param in req.body) {
  updateObj.$set['competitors.$.'+param] = req.body[param];
 }

Вижте това отговорете за повече подробности.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Преобразувайте MongoDB заявка в Spring MongoDB синтаксис

  2. Линейна фуния от колекция от събития с агрегиране на MongoDB, възможно ли е?

  3. Как да използвате едно и също поле няколко пъти в заявка за търсене на MongoDB в NodeJS

  4. Създайте суперпотребител в mongo

  5. Как да групирате вложени публикации с рамка за агрегиране на MongoDB?