Использование вида будет лучше масштабироваться.Но то, что «быстрее», будет зависеть от многих факторов, которые вам необходимо будет сравнить в вашем конкретном случае с вашим оборудованием, сетью и данными.
В случае «all_docs» вы фактически будете передавать всюбазы данных для клиента, поэтому скорость сети будет существенным фактором при росте базы данных.Если вы сделаете это так, как вы сделали, поместив все документы в массив и затем отфильтровав, вы в какой-то момент достигнете пределов использования памяти - вам действительно нужно обработать результаты в виде потока.Этот подход - O (N), где N - количество документов в базе данных.
В случае «просмотра» индекс B-Tree используется для поиска диапазона подходящих документов.Клиенту отправляются только совпадающие документы, поэтому экономия времени и памяти в сети зависит от доли совпадающих документов во всех документах.Сложность по времени составляет O (log (N) + M), где N - общее количество документов, а M - количество совпадающих документов.
Если N большое, а M маленькое, такой подход следует отдать предпочтение.Поскольку M приближается к N, оба подхода в значительной степени совпадают.Если M и N неизвестны или сильно изменяются, используйте представление.
Вы должны рассмотреть еще одну вещь - вам нужен весь документ возвращен?Если вам нужны только несколько полей из больших документов, тогда представления могут возвращать только эти поля, что дополнительно сокращает использование сети и памяти.
Запросы манго также могут представлять интерес вместо представлений для этого вида запросов.Вы можете создать индекс над полем «тип», если размер набора данных требует этого, но это не обязательно.
Лично я бы использовал запрос Манго и добавил бы индекс, если / когда это необходимо.