$cmp - Amazon DocumentDB

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

$cmp

L'$cmpopérateur dans Amazon DocumentDB est utilisé pour comparer deux valeurs et renvoyer une valeur entière indiquant leur ordre relatif. Il s'agit d'un opérateur de comparaison qui compare deux expressions et renvoie une valeur entière de -1, 0 ou 1, selon que la première valeur est inférieure, égale ou supérieure à la deuxième valeur, respectivement.

Paramètres

  • expression1: première expression à comparer.

  • expression2: deuxième expression à comparer.

Exemple (MongoDB Shell)

L'exemple suivant montre comment utiliser l'$cmpopérateur pour comparer deux valeurs numériques.

Création d'exemples de documents

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

Exemple de requête

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

Sortie

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

Dans cet exemple, l'$cmpopérateur compare les value2 champs value1 et de chaque document. Le résultat est le suivant :

- `$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).

Exemples de code

Pour afficher un exemple de code d'utilisation de la $cmp commande, choisissez l'onglet correspondant à la langue que vous souhaitez utiliser :

Node.js

Voici un exemple d'utilisation de l'$cmpopérateur dans une application Node.js avec le mongodb pilote :

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

Voici un exemple d'utilisation de l'$cmpopérateur dans une application Python avec le pymongo pilote :

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

Le résultat des exemples Node.js et Python sera le même que celui de l'exemple MongoDB Shell :

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