Из-за характера данных, которые мы собираем в нашем приложении, необходимо, чтобы пользователь мог выполнять поиск по более чем 1 000 000 строк данных и получать результаты на стороне клиента как можно быстрее.
Мы экспериментировали с различными методами и в настоящее время экспериментируем с механизмом хранения документов MongoDB. По сути, мы храним данные отчета в Mongo так, как хотим показать их на стороне клиента.
Но здесь я хотел опираться на ваш опыт. Мы использовали некоторые подключаемые модули таблиц отчетов, такие как datatables.net, но когда клиент запрашивает данные, которые могут соответствовать более чем 100 000 записей, задержка доставки этих данных на сторону клиента может занять более минуты, чтобы экспортировать JSON с сервера в клиент.
Я пробовал фильтровать набор результатов, отправляя клиенту только 1000 результатов за раз, но что, если пользователь решит отсортировать столбец? Весь запрос должен быть выполнен снова, и первая 1000 результатов загружена в клиент.
Но что, если клиент решит искать в столбце, результаты должны быть получены повторно. Всех этих проблем не существует, когда все данные загружены на стороне клиента.
По сути, мой вопрос заключается в том, как вы можете эффективно и быстро позволить клиентам выполнять поиск и манипулировать большими наборами данных, но при этом доставлять результаты на сторону клиента таким образом, чтобы не требовалось, чтобы каждый результат был отправлен за один раз, поэтому сохраняя клиентская сторона максимально облегчена?
Я уверен, что для MongoDB должны быть какие-то интерфейсные плагины с данными, потенциально через node.js для прямой связи JSON, но я ничего не могу найти!
Спасибо за вашу помощь.