$log (agregação)
Nesta página
Definição
$log
Calcula o registro de um número na base especificada e retorna o resultado como um valor duplo.
$log
tem a seguinte sintaxe:{ $log: [ <number>, <base> ] } A expressão
<number>
pode ser qualquerexpressão válida, desde que resolva para um número não negativo.A expressão
<base>
pode ser qualquer expressão válida, desde que resolva para um número positivo maior que1
.Para mais informações sobre expressões, consulte Operadores de Expressão.
Comportamento
Se qualquer um dos argumentos for resolvido para um valor de null
ou se referir a um campo ausente, $log
retornará null
. Se qualquer um dos argumentos se resolver em NaN
, $log
retornará NaN
.
Exemplo | Resultados |
---|---|
{ $log: [ 100, 10 ] } | 2 |
{ $log: [ 100, Math.E ] } onde Math.E é uma representação JavaScript para e. | 4.605170185988092 |
Exemplo
Uma coleção integers
contém os seguintes documentos:
db.integers.insertMany( [ { _id: 1, int: 5 }, { _id: 2, int: 2 }, { _id: 3, int: 23 }, { _id: 4, int: 10 } ] )
O exemplo a seguir usa o registro 2 em seu cálculo para determinar o número de bits necessários para representar o valor de int
.
db.integers.aggregate([ { $project: { bitsNeeded: { $floor: { $add: [ 1, { $log: [ "$int", 2 ] } ] } } } } ])
A operação retorna os seguintes resultados:
{ "_id" : 1, "bitsNeeded" : 3 } { "_id" : 2, "bitsNeeded" : 2 } { "_id" : 3, "bitsNeeded" : 5 } { "_id" : 4, "bitsNeeded" : 4 }