sql >> Databáze >  >> NoSQL >> MongoDB

pullAll při odstraňování vložených objektů

$pullAll Operátor je ve skutečnosti zkratka "speciálního případu", která funguje na polích s pouze hodnotami v nich, jako je váš alternativní případ.

To, co opravdu chcete, je $pull a jeho argument je "dotaz" na dokumenty obsažené v poli. Váš seznam se tedy stane argumentem pro $in :

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

Takže ve vašem dalším příkladu delší tvar $pullAll by bylo:

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

Totéž, ale jen „dlouhoučká“ forma.




  1. Aktualizujte model pomocí Mongoose, Express, NodeJS

  2. Jak uložit komplexní vnořený JSON v Redis pomocí Pythonu

  3. Server Discovery And Monitoring engine je zastaralý

  4. jak mohu předat nekonečno do redis z pythonu?