Definição
$logCalcula o registro de um número na base especificada e retorna o resultado como um valor duplo.
$logtem 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 Expressões.
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 |
|---|---|
|
|
|
|
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 }