Ultimamente, temos mudado nosso processamento de dados para uma abordagem mais baseada em fluxo. Infelizmente, alguns de nossos dados são agregados de toda a coleção, como mín. / Máx. / Soma / média.
Executar o agregado usando a estrutura de agregação Mongo ou mapear / reduzir é muito lento para nós e, francamente, parece um verdadeiro desperdício. A solução óbvia para isso é manter uma tabela de resumo, mas fazer isso por caso é um pouco PITA.
Então eu escrevi Mongolian Summary ( https://npmjs.org/package/mongosum ), um wrapper em torno de Mongolian Deadbeef ( https://npmjs.org/package/mongolian ) que automaticamente lida com o doloroso negócio de manter esse tipo de agregado em seus dados.
É uma ferramenta rudimentar por enquanto, mas estamos usando em (quase) código de produção, portanto, como precisamos de recursos, podemos adicioná-los. O primeiro da lista, eu acho, é apenas resumir coleções selecionadas. Além disso, adicionando testes!
Basicamente, sempre que dados são inseridos / atualizados / excluídos, este módulo rastreia os tipos de todas as colunas e a soma, mínimo e máximo dos campos numéricos. Dessa forma, não há custo (na recuperação) para obter esses dados. Basta chamar collection.getSummary (callback) e você tem os dados!
Portanto, baixe hoje e obtenha soma, mínimo, máximo e média “grátis” em todos os campos numéricos de sua coleção!