$range - Amazon DocumentDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

$range

Der $range Aggregationsoperator in Amazon DocumentDB wird verwendet, um ein Array von aufeinanderfolgenden Zahlen innerhalb eines bestimmten Bereichs zu erstellen. Dieser Operator ist besonders nützlich für die Generierung von Zahlenfolgen, wie z. B. Meilenmarkierungen für Versorgungsstationen in einem Rennen, wie in den folgenden Beispielen gezeigt.

Parameter

  • start: Der Startwert für den Bereich.

  • end: Der Endwert für den Bereich.

  • step: (optional) Der Schrittwert, der beim Generieren des Bereichs verwendet werden soll. Wenn nicht angegeben, ist der Standard-Schrittwert 1.

Beispiel (MongoDB Shell)

In diesem Beispiel verwenden wir den $range Operator, um die Meilenmarkierungen für Wasserstationen in einem Radrennen zu generieren.

Erstellen Sie Beispieldokumente

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 } ]);

Beispiel für eine Abfrage

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

Ausgabe

[ { _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 ] } ]

Codebeispiele

Um ein Codebeispiel für die Verwendung des $range Befehls anzuzeigen, wählen Sie die Registerkarte für die Sprache, die Sie verwenden möchten:

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()