Definición
$logCalcula el registro de un número en la base especificada y devuelve el resultado como un double.
$logtiene la siguiente sintaxis:{ $log: [ <number>, <base> ] } La expresión
<number>puede ser cualquier expresión válida expresión siempre que se resuelva en un número no negativo.La expresión
<base>puede ser cualquier expresión válida siempre que se resuelva como un número positivo mayor que1.Para obtener más información sobre las expresiones, consulta Expresiones.
Comportamiento
El tipo de retorno por defecto es un double. Si al menos un operando es un decimal, entonces el tipo de retorno es un decimal.
Si alguno de los argumentos se resuelve en un valor de null o se refiere a un campo que falta, $log devuelve null. Si alguno de los argumentos se resuelve en NaN, $log retorna NaN.
Ejemplo | Resultados |
|---|---|
|
|
|
|
Ejemplo
Una colección integers contiene los siguientes documentos:
db.integers.insertMany( [ { _id: 1, int: 5 }, { _id: 2, int: 2 }, { _id: 3, int: 23 }, { _id: 4, int: 10 } ] )
El siguiente ejemplo utiliza log 2 en su cálculo para determinar la cantidad de bits necesarios para representar el valor de int.
db.integers.aggregate([ { $project: { bitsNeeded: { $floor: { $add: [ 1, { $log: [ "$int", 2 ] } ] } } } } ])
La operación devuelve los siguientes resultados:
{ "_id" : 1, "bitsNeeded" : 3 } { "_id" : 2, "bitsNeeded" : 2 } { "_id" : 3, "bitsNeeded" : 5 } { "_id" : 4, "bitsNeeded" : 4 }