Различия между $ project, $ filter и $ match в MongoDB - PullRequest
0 голосов
/ 30 мая 2018

Я новичок в MongoDB и серверах NoSQL в целом.Я тестирую некоторые вещи (вставка в локальную БД, простые запросы и т. Д.) На моем компьютере с программным обеспечением Studio 3T (IDE для MongoDB), и я вошел в эти 3 оператора во время тестирования агрегатного метода: $ project, $ filter и $матч.Проблема в том, что я не вижу различий между этими операторами, единственное, что, я думаю, я мог бы понять, это то, что $ project используется, чтобы «выбрать», какие поля (или весь массив) показывать на экране в ответ на запрос, нокак насчет $ match и $ filter?кажется, они делают то же самое.Я читаю документацию MongoDB, но она не объясняет операторов достаточно подробно (на мой взгляд, конечно).

Заранее спасибо

1 Ответ

0 голосов
/ 30 мая 2018

$ project и $ match - Этапы конвейерного агрегирования и $ filter - Оператор агрегационного конвейера ,

Разница между этапом конвейера и оператором конвейера - это этап, который можно использовать отдельно, тогда как оператор конвейера можно использовать только внутри этапа конвейера.

$ project используется дляпроецирование элементов на следующий этап

$ match используется для фильтрации коллекции, чтобы предоставить только совпадающие документы для входного запроса / критериев, и рекомендуется использовать ее в начале агрегации.Трубопровод перед использованием других операторов.Поскольку он фильтрует коллекцию по уменьшенному количеству документов, и только следующий сокращенный набор документов передается на следующую стадию конвейера агрегации.

$ filter используется в массивах, он выбирает подмножество массива для возврата на основе указанного условия.Возвращает массив только с теми элементами, которые соответствуют условию.Возвращенные элементы в оригинальном порядке.

...