MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Node.js — Mongoose — zaktualizuj zagnieżdżoną tablicę wszystkimi wartościami w req.body

Musisz użyć $ operator pozycyjny w twoim $set . Aby dynamicznie przypisać te właściwości, na podstawie tego, co znajduje się w twoim req.body , musisz stworzyć swój $set programowo.

Jeśli chcesz zaktualizować nazwę, wykonaj następujące czynności:

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

Jednym ze sposobów, w jaki możesz programowo zbudować $set używając req.body wykonuje następujące czynności:

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

Zobacz to odpowiedz, aby uzyskać więcej informacji.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB - Użyj struktury agregacji lub mapreduce do dopasowania tablicy ciągów w dokumentach (dopasowanie profilu)

  2. Jak przetestować aktualizacje aplikacji MongoDB?

  3. Błąd duplikatu klucza Mongoose upsert

  4. Jak obliczyć pole średniej dziennej za pomocą MongoDB?

  5. MongoDB/Meteor:Dodaj unikalny identyfikator do każdego elementu tablicy