$cmp - 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.

$cmp

Der $cmp Operator in Amazon DocumentDB wird verwendet, um zwei Werte zu vergleichen und einen Ganzzahlwert zurückzugeben, der ihre relative Reihenfolge angibt. Es ist ein Vergleichsoperator, der zwei Ausdrücke vergleicht und einen Ganzzahlwert von -1, 0 oder 1 zurückgibt, je nachdem, ob der erste Wert kleiner, gleich oder größer als der zweite Wert ist.

Parameter

  • expression1: Der erste Ausdruck, der verglichen werden soll.

  • expression2: Der zweite zu vergleichende Ausdruck.

Beispiel (MongoDB Shell)

Das folgende Beispiel zeigt die Verwendung des $cmp Operators, um zwei numerische Werte zu vergleichen.

Erstellen Sie Beispieldokumente

db.collection.insertMany([ { _id: 1, value1: 10, value2: 20 }, { _id: 2, value1: 15, value2: 15 }, { _id: 3, value1: 20, value2: 10 } ]);

Beispiel für eine Abfrage

db.collection.find({ $expr: { $cmp: ["$value1", "$value2"] } })

Ausgabe

[ { "_id" : 1, "value1" : 10, "value2" : 20 }, { "_id" : 3, "value1" : 20, "value2" : 10 } ]

In diesem Beispiel vergleicht der $cmp Operator die value2 Felder value1 und für jedes Dokument. Das Ergebnis ist:

- `$cmp: ["$value1", "$value2"]` returns -1 for the first document (10 < 20), 0 for the second document (15 = 15), and 1 for the third document (20 > 10).

Codebeispiele

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

Node.js

Hier ist ein Beispiel für die Verwendung des $cmp Operators in einer Node.js -Anwendung mit dem mongodb Treiber:

const { MongoClient } = require('mongodb'); const client = new MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false'); async function main() { await client.connect(); const db = client.db('test'); const collection = db.collection('mycollection'); // Insert sample documents await collection.insertMany([ { _id: 1, value1: 10, value2: 20 }, { _id: 2, value1: 15, value2: 15 }, { _id: 3, value1: 20, value2: 10 } ]); // Query using $cmp operator const result = await collection.find({ $expr: { $cmp: ['$value1', '$value2'] } }).toArray(); console.log(result); await client.close(); } main();
Python

Hier ist ein Beispiel für die Verwendung des $cmp Operators in einer Python-Anwendung mit dem pymongo Treiber:

from pymongo import MongoClient client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false') db = client['test'] collection = db['mycollection'] # Insert sample documents collection.insert_many([ {'_id': 1, 'value1': 10, 'value2': 20}, {'_id': 2, 'value1': 15, 'value2': 15}, {'_id': 3, 'value1': 20, 'value2': 10} ]) # Query using $cmp operator result = list(collection.find({ '$expr': { '$cmp': ['$value1', '$value2'] } })) print(result) client.close()

Die Ausgabe der Beispiele Node.js und Python entspricht der des MongoDB-Shell-Beispiels:

[ { "_id" : 1, "value1" : 10, "value2" : 20 }, { "_id" : 2, "value1" : 15, "value2" : 15 }, { "_id" : 3, "value1" : 20, "value2" : 10 } ]