sql >> Databáze >  >> NoSQL >> MongoDB

Node.js – Mongoose – Aktualizujte vnořené pole se všemi hodnotami v req.body

Budete muset použít $ poziční operátor ve vaší $set . Aby bylo možné tyto vlastnosti přiřadit dynamicky na základě toho, co je ve vašem req.body , budete muset vytvořit $set programově.

Pokud chcete název aktualizovat, postupujte následovně:

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);
    }
 }
);

Jedním ze způsobů můžete programově vytvořit $set pomocí req.body je provedením následujícího:

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

Viz toto odpovězte na další podrobnosti.



  1. Spark neprovádí úkoly

  2. Streamování dat NoSQL s MongoDB a Kafka

  3. MongoDB - Návratové ID vložené položky

  4. Klonovat databázi v Mongodb mezi hostiteli pomocí ovladače uzlu