Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

$range (operador de expresión)

$range

Devuelve un arreglo cuyos elementos son una secuencia generada de números. $range genera la secuencia desde el número inicial especificado incrementando sucesivamente el número inicial por el valor del paso especificado hasta, pero sin incluir, el punto final.

$range tiene lo siguiente Sintaxis de expresión del operador:

{ $range: [ <start>, <end>, <non-zero step> ] }
Operando
Descripción

<start>

Un número entero que especifica el inicio de la secuencia. Puede ser cualquier expresión válida que se resuelva como un número entero.

<end>

Un número entero que especifica el límite superior exclusivo de la secuencia. Puede ser cualquier expresión válida que se resuelva como un número entero.

<non-zero step>

opcional. Un número entero que especifica el valor de incremento. Puede ser cualquier expresión válida que se resuelva a un número entero distinto de cero. El valor por defecto es 1.

Los argumentos <start> y <end> son obligatorios y deben ser números enteros. El argumento <non-zero step> es opcional y, si se omite, es por defecto 1.

Ejemplo
Resultados

{ $range: [ 0, 10, 2 ] }

[ 0, 2, 4, 6, 8 ]

{ $range: [ 10, 0, -2 ] }

[ 10, 8, 6, 4, 2 ]

{ $range: [ 0, 10, -2 ] }

[ ]

{ $range: [ 0, 5 ] }

[ 0, 1, 2, 3, 4 ]

El siguiente ejemplo usa una colección llamada distances que lista ciudades junto con su distancia en millas desde San Francisco.

Documentos en la colección distances:

db.distances.insertMany([
{ _id: 0, city: "San Jose", distance: 42 },
{ _id: 1, city: "Sacramento", distance: 88 },
{ _id: 2, city: "Reno", distance: 218 },
{ _id: 3, city: "Los Angeles", distance: 383 }
]);

Un ciclista está planeando andar en bicicleta desde San Francisco hasta cada ciudad que aparece en la colección y quiere detenerse y descansar cada 40 kilómetros. La siguiente operación de pipeline de agregación utiliza el operador $range para determinar los puntos de parada para cada viaje.

db.distances.aggregate([{
$project: {
_id: 0,
city: 1,
"Rest stops": { $range: [ 0, "$distance", 25 ] }
}
}])

La operación devuelve lo siguiente:

{ "city" : "San Jose", "Rest stops" : [ 0, 25 ] }
{ "city" : "Sacramento", "Rest stops" : [ 0, 25, 50, 75 ] }
{ "city" : "Reno", "Rest stops" : [ 0, 25, 50, 75, 100, 125, 150, 175, 200 ] }
{ "city" : "Los Angeles", "Rest stops" : [ 0, 25, 50, 75, 100, 125, 150, 175, 200, 225, 250, 275, 300, 325, 350, 375 ] }

Volver

$rand

En esta página