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

pullAll mens du fjerner indlejrede objekter

$pullAll operator er faktisk en genvej til "specielt tilfælde", som fungerer på arrays med kun værdier i dem, såsom dit alternative tilfælde.

Det du virkelig ønsker er $pull og dets argument er en "forespørgsel" for de dokumenter, der er indeholdt i arrayet. Så din liste bliver så et argument til $in :

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

Så i dit andet eksempel, en længere form for $pullAll ville være:

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

Det samme, men bare "langhånds"-formen.




  1. Flask &MongoDB - For Loop virker ikke

  2. MongoDB forestillinger - hvor mange databaser, samlinger?

  3. Sådan opretter du indekser i MongoDB via .NET

  4. Hvordan forbindes med mongodb ved hjælp af sailsjs v0.10?