Definição
Retorna o desvio padrão da população de valores de documentos em uma janela específica.
Observação
Desambiguação
Esta página descreve $stdDevPop quando usado como uma função de janela.
Você também pode usar $stdDevPop nestes outros contextos:
$stdDevPop (accumulator), que retorna o desvio padrão da população de valores em um grupo de documentos.$stdDevPop (expression), que retorna o desvio padrão da população de valores numéricos em uma array.
Sintaxe
{ $setWindowFields: { ... output: { <field>: { $stdDevPop: <expression> } } } }
Comportamento
Tipo de resultado
$stdDevPop retorna o desvio padrão da população dos valores de entrada como double.
Non-Numeric Values
A função de janela $stdDevPop ignora valores não numéricos. Se a janela não contiver valores numéricos, $stdDevPop retornará null.
Valor único
Se a entrada consistir em um único valor numérico, $stdDevPop retornará 0.
Exemplo
Os exemplos nesta página usam dados do conjunto de dados sample_mflix. Para obter detalhes sobre como carregar esse conjunto de dados em sua implantação autogerenciada do MongoDB , consulte Carregar o conjunto de dados de amostra. Se você fez modificações nos bancos de dados de amostra, talvez seja necessário descartar e recriar os bancos de dados para executar os exemplos nesta página.
Este exemplo usa $setWindowFields para adicionar a cada documento um campo que contém o desvio padrão da população em execução das classificações do IMDb para Murais de 2009 e 2010.
db.movies.aggregate( [ { $match: { genres: "Musical", year: { $in: [ 2009, 2010 ] }, "imdb.rating": { $type: "double" } } }, { $setWindowFields: { partitionBy: "$year", sortBy: { title: 1 }, output: { stdDevPopRatingInYear: { $stdDevPop: "$imdb.rating", window: { documents: [ "unbounded", "current" ] } }, rankInYear: { $documentNumber: {} } } } }, { $project: { _id: 0, title: 1, year: 1, "imdb.rating": 1, stdDevPopRatingInYear: 1, rankInYear: 1 } }, { $sort: { year: 1, title: 1 } } ] )
O pipeline anterior:
Usa
$matchpara filtrar Murais de 2009 e 2010 com uma classificação numérica do IMDb.Utiliza
$setWindowFieldspara dividir filmes poryeare classificá-los portitle. O estágio usa$stdDevPopcom uma janela de documentos de[ "unbounded", "current" ]para criarstdDevPopRatingInYear. O campostdDevPopRatingInYearcontém o desvio padrão da população em execução deimdb.ratingdesde o início da partição até o documento atual.$documentNumberatribui um número de linha por partição (rankInYear) a cada documento.Utiliza
$projectpara incluirtitle,year,imdb,stdDevPopRatingInYearerankInYearna saída.Utiliza
$sortpara classificar os resultados por ano e título.