sql >> Database >  >> NoSQL >> MongoDB

Hoe multi-update van een geneste array in MondoDB?

Dat komt omdat je de $ operator gebruikt:De positionele $ operator identificeert een element (niet multi) in een array om bij te werken zonder expliciet de positie van het element in de array op te geven. Om een ​​array-element uit een leesbewerking te projecteren of terug te geven, zie de $ projection-operator.

U kunt de onderstaande code gebruiken om dit te doen:

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. Geaggregeerde zoekopdracht in mongo werkt, niet in Pymongo

  2. Mongodb map/reduce gebruiken in php

  3. Hoe mangoest findOne te gebruiken

  4. MongoDB-afdrukafstand tussen twee punten