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

Съвпадение на поле на масив, което съдържа произволна комбинация от предоставения масив в MongoDB

Можете да направите това, като комбинирате няколко оператора:

db.test.find({tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}}})

$elemMatch с $nin намира документите, където има единичен tags елементът не е нито 'Rad', нито 'Cool', а след това родителският $not инвертира съвпадението, за да върне всички документи, където това не съответства на нито един елемент.

Това обаче също ще върне документи, където tags или липсва, или няма елементи. За да ги изключите, трябва да добавите квалификатор, който осигурява tags има поне един елемент:

db.test.find({
    tags: {$not: {$elemMatch: {$nin: ['Rad', 'Cool']}}},
    'tags.0': {$exists: true}
})



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. най-добрата практика на обединяването на django + PyMongo?

  2. Изтриване на каскаден стил в Mongoose

  3. Предотвратяване на инжектиране на JavaScript NoSQL в MongoDB

  4. MongoParseError:опциите useCreateIndex, useFindAndModify не се поддържат

  5. Какви са правилата за плурализиране на Mongoose (Nodejs)?