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

MongoDB Намерете точно съвпадение на масива, но редът няма значение

Приетият в момента отговор НЕ гарантира точно съвпадение на вашия масив, просто размерът е идентичен и че масивът споделя поне един елемент с масива на заявката.

Например заявката

db.coll.find({ "hobbies": { "$size" : 2, "$in": [ "2", "1", "5", "hamburger" ] }  });

все пак ще върне потребителя kaushik в този случай.

Това, което трябва да направите за точно съвпадение, е да комбинирате $size с $all , така:

db.coll.find({ "hobbies": { "$size" : 2, "$all": [ "2", "1" ] }  });

Но имайте предвид, че това може да бъде много скъпа операция, в зависимост от вашето количество и структура на данни. Тъй като MongoDB поддържа реда на вмъкнатите масиви стабилен, може да се справите по-добре, като гарантирате, че масивите са в сортиран ред при вмъкване в DB, така че можете да разчитате на статичен ред при запитване.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Как да използвам променлива като име на поле в mongodb-native findOne()?

  2. Вграден документ без масив?

  3. Как да валидирам членове на поле на масив?

  4. Mongodb вмъква документ без поле _id

  5. Каква е разликата между findAndModify и update в MongoDB?