Приетият в момента отговор НЕ гарантира точно съвпадение на вашия масив, просто размерът е идентичен и че масивът споделя поне един елемент с масива на заявката.
Например заявката
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, така че можете да разчитате на статичен ред при запитване.