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 sowohl des Python-Beispiels als auch des Node.js Python-Beispiels entspricht der des MongoDB-Shell-Beispiels:
[
{ "_id" : 1, "value1" : 10, "value2" : 20 },
{ "_id" : 2, "value1" : 15, "value2" : 15 },
{ "_id" : 3, "value1" : 20, "value2" : 10 }
]