Создание отчетов на основе данных в MongoDB - PullRequest
1 голос
/ 14 марта 2012

Я пытаюсь создать несколько отчетов с информацией о дате на основе mongoDB.Например, мне нужно показать количество регистраций пользователей за день за последние 30 дней.Каждый пользовательский документ имеет зарегистрированное поле даты.Мне нужно показать количество совпадающих записей (сумм) в день в моем отчете.

Является ли карта-сокращение вариант?или это слишком тяжело?

Есть предложения о том, как подойти?

Я использую пружину для доступа к Монго.Но мои вопросы больше о том, как запросить mongoDB.

1 Ответ

1 голос
/ 16 марта 2012

Карта / уменьшение является чрезвычайно гибкой и может делать то, что было бы трудно, используя другие методы, но она не будет такой же быстрой или ресурсоэффективной, как менее гибкие методы, если менее гибкие методы делают то, что вам нужно. Я думаю, что это источник идеи, что это «тяжело». Вы можете написать пару функций map / Reduce, чтобы сделать то, что делает db.collection.find ({a: 1}). Count (), но решение count () будет быстрее.

Из вашего описания, карта / уменьшить звуки, как разумный подход. Это дает вам возможность настраивать группировку на основе других полей в документах, если это необходимо, что может быть полезно, если ваши документы не совсем одинаковы. Задание сопоставления / уменьшения добавит нагрузку на сервер, поэтому, если вы едва успеваете за высокой частотой вставок или обновлений, это может быть не очень хорошим дополнением, но это относится к любой добавленной рабочей нагрузке. Если у вас есть такая возможность, лучше всего протестировать и оценить влияние на производительность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...