Вообще говоря, вы не можете.
Однако могут быть некоторые комбинации клавиш, в зависимости от реальных требований.Вы хотите посчитать «мужчин старше 40» по всему набору данных или только за один день?
1 день: разбейте свои данные на ежедневные коллекции (processingData-20111121, ...), это поможет вашим запросам.Также вы можете кэшировать результаты такого запроса.
весь набор данных: предварительно агрегированные данные.То есть после вставки нового ввода данных сделайте что-то вроде этого:
db.preaggregated.update({_id : 'male_40'},
{$set : {gender : 'm', age : 40}, $inc : {count : 1231}},
true);
Аналогично, если вы заранее знаете все ваши запросы, вы можете просто их пересчитать (а не сохранять необработанные данные).
Это также зависит от того, как вы определяете «в режиме реального времени» и насколько велика нагрузка на запрос.В некоторых случаях можно просто запустить специальное уменьшение карты.