$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
O tipo de retorno padrão é um double
. Se pelo menos um operando for decimal
, o tipo de retorno será decimal.
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 }