sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan multiopdatering af et indlejret array i MondoDB?

Det er fordi du bruger $ operator:Den positionelle $ operator identificerer et element (ikke multi) i et array for at opdatere uden eksplicit at angive elementets position i arrayet. For at projicere eller returnere et array-element fra en læseoperation, se $-projektionsoperatoren.

Du kan bruge nedenstående kode til at gøre det:

db.playground.find({
  $and: [
    {
      "TargetSegments.Colors": {
        $exists: true
      }
    },
    {
       "ProjectFileId": 1
    },
    {
      "SourceLanguageId": 2
    },
    {
      "TargetSegments": {
        $elemMatch: {
          "LanguageId": 1
        }
      }
    }
  ]
}).forEach(function(item)
{
    var targets = item.TargetSegments;

    for(var index = 0; index < targets.length; index++)
    {
        var target = targets[index];
        target.Segment = null,
        target.Colors= [],
        target.Widths= [],
        target.Heights= []
    }

    db.playground.save(item);
});



  1. Redis med Resque og Rails:ERR-kommando er ikke tilladt, når der bruges hukommelse> 'maxmemory'

  2. Mongodb tidsstempel er meget unøjagtigt - mongoose

  3. MongoDB $weeklyUpdate #65 (15. april 2022):GDELT, Mongoose, &Hackathon Time!

  4. $elemMatch projektion i node.js