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

Как да принудите MongoDB pullAll да пренебрегне реда на документите

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

Вместо това използвайте $pull който ще инспектира всеки елемент и ще използва $or условие за списъците с документи:

db.streams.update(
    { "user": "user_name" },
    { "$pull": { "streams": { "$or": streamsB } }}
)

По този начин няма значение в кой ред са полетата или наистина търсите „точно съвпадение“ като текущия $pullAll операцията всъщност се изпълнява.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Намерете последния запис за всеки ден

  2. MongoDB филтрира по свойство на масив само ако съществува

  3. Как да върна резултатите от Mongoose от метода за намиране?

  4. mongoose 'findById' връща нула с валиден идентификатор

  5. Pymongo - ValueError:NaTType не поддържа utcoffset при използване на insert_many