MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

pullAll, докато премахвате вградени обекти

$pullAll операторът всъщност е пряк път за „специален случай“, който работи върху масиви само със стойности в тях, като вашия алтернативен регистър.

Това, което наистина искате, е $pull и неговият аргумент е "заявка" за документите, съдържащи се в масива. Така вашият списък след това се превръща в аргумент за $in :

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

Така че в другия ви пример, по-дълга форма на $pullAll ще бъде:

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

Същото нещо, но само "дългата" форма.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:Сървърът има предупреждения за стартиране „Контролът на достъпа не е активиран за базата данни“

  2. MongoDB:експортиране на отделна стойност на колона

  3. Mongodb c# драйвер и ISODate

  4. Как да ограничите размера на масив в MongoDB?

  5. Как да агрегирам огромен масив в mongoDB?