sql >> Database >  >> NoSQL >> MongoDB

pullAll tijdens het verwijderen van ingesloten objecten

De $pullAll operator is eigenlijk een "special case" snelkoppeling die werkt op arrays met alleen waarden erin, zoals uw alternatieve case.

Wat je echt wilt is $pull en het argument is een "query" voor de documenten in de array. Dus je lijst wordt dan een argument voor $in :

db.bios.update(
   { "name.first": "James" },
   { 
      "$pull": { 
         "awards": { "by": { "$in": ["Stockholm", "Hollywood"] } } 
      } 
   }
)

Dus in uw andere voorbeeld, een langere vorm van $pullAll zou zijn:

db.bios.update(
   { "name.first": "James" },
   {
       "$pull": { "contribs": { "$in": ["Java","UNIX"] } }
   }
)

Hetzelfde, maar alleen de "handmatige" vorm.




  1. Hoe has_many te implementeren:via relaties met Mongoid en mongodb?

  2. Waarom is $in veel sneller dan $all?

  3. Automatisch aanvullen implementeren op MongoDB

  4. Slechts één document vinden met Restivus en Curl