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
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 }