Я пытаюсь оптимизировать для следующего варианта использования. Я хочу получить все документы, чье поле массива является подмножеством запрашивающего массива.
Ex. subset (['a', 'b', 'c']) => [{arr: ['a', 'b']}, {arr: ['c']}, {arr: ['a' , 'b', 'c']}]
Пока запрос $ not: {$ elemMatch: {$ nin: [arr]}} позволил мне достичь ожидаемого поведения. Этот запрос, однако, не использует индекс поля массива, который я выбрал, в результате каждый раз происходит полное сканирование коллекции. Я провел некоторое исследование, и, очевидно, $ elemMatch, которому предшествует $ not, приводит к тому, что индекс не используется. Есть ли другой способ воспроизвести мой запрос так, чтобы он использовал индекс? Этот запрос в настоящее время занимает почти целую секунду в 1M документов.