$range - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$range

El operador de $range agregación de Amazon DocumentDB se utiliza para crear una matriz de números consecutivos dentro de un rango específico. Este operador es particularmente útil para generar secuencias de números, como marcadores de millas para los avituallamientos en una carrera, como se muestra en los ejemplos siguientes.

Parámetros

  • start: el valor inicial del rango.

  • end: el valor final del rango.

  • step: (opcional) El valor del paso que se utilizará al generar el rango. Si no se proporciona, el valor de paso predeterminado es 1.

Ejemplo (MongoDB Shell)

En este ejemplo, utilizaremos el $range operador para generar los marcadores de millas de las estaciones de abastecimiento de agua en una carrera de bicicletas.

Crea documentos de muestra

db.races.insertMany([ { _id: 0, race: "STP", distance: 206 }, { _id: 1, race: "RSVP", distance: 160 }, { _id: 2, race: "Chilly Hilly", distance: 33 }, { _id: 3, race: "Flying Wheels", distance: 100 } ]);

Ejemplo de consulta

db.races.aggregate([ { $project: { race: 1, "waterStations": { $range: [20, "$distance", 20] } } } ]);

Salida

[ { _id: 0, race: 'STP', waterStations: [ 20, 40, 60, 80, 100, 120, 140, 160, 180, 200 ] }, { _id: 1, race: 'RSVP', waterStations: [ 20, 40, 60, 80, 100, 120, 140 ] }, { _id: 2, race: 'Chilly Hilly', waterStations: [ 20 ] }, { _id: 3, race: 'Flying Wheels', waterStations: [ 20, 40, 60, 80 ] } ]

Ejemplos de código

Para ver un ejemplo de código para usar el $range comando, elija la pestaña del idioma que desee usar:

Node.js
const { MongoClient } = require('mongodb'); async function example() { const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); try { await client.connect(); const db = client.db('test'); const collection = db.collection('races'); const pipeline = [ { $project: { race: 1, waterStations: { $range: [20, "$distance", 20] } } } ]; const results = await collection.aggregate(pipeline).toArray(); console.dir(results, { depth: null }); } finally { await client.close(); } } example().catch(console.error);
Python
from pymongo import MongoClient def example(): client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') try: db = client.test collection = db.races pipeline = [ { "$project": { "race": 1, "waterStations": { "$range": [20, "$distance", 20] } } } ] results = collection.aggregate(pipeline) for doc in results: print(doc) except Exception as e: print(f"An error occurred: {e}") finally: client.close() example()