В MongoDB для выполнения поиска с полным совпадением по массиву можно использовать оператор $all. Этот оператор позволяет искать документы, содержащие все элементы массива, указанного в запросе.
Прежде всего, необходимо создать индекс для поля, по которому будет выполняться поиск. Для этого можно использовать метод createIndex:
db.collection.createIndex({ field: 1 })
Здесь collection
- название коллекции, а field
- название поля, по которому будет выполняться поиск.
После создания индекса можно выполнять поиск с полным совпадением по массиву. Для этого используется оператор $all вместе с массивом значений, по которым нужно выполнить поиск. Например, если необходимо найти документы, содержащие все элементы массива [1, 2, 3] в поле "field", используется следующий запрос:
db.collection.find({ field: { $all: [1, 2, 3] } })
Здесь collection
- название коллекции, а field
- название поля, в котором необходимо выполнить поиск.
Такой запрос вернет все документы, в поле "field" которых содержат все элементы массива [1, 2, 3]. Если требуется найти документы, в поле "field" которых содержат все элементы любого из указанных массивов, можно использовать оператор $elemMatch. Ниже приведен пример такого запроса:
db.collection.find({ field: { $elemMatch: { $all: [1, 2, 3] } } })
Здесь collection
- название коллекции, а field
- название поля, в котором необходимо выполнить поиск.
Таким образом, метод $all позволяет выполнять поиск с полным совпадением по массиву в MongoDB.