

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.

# \$1cmp
<a name="cmp"></a>

L'`$cmp`opé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)
<a name="cmp-examples"></a>

L'exemple suivant montre comment utiliser l'`$cmp`opé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'`$cmp`opé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
<a name="cmp-code"></a>

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'`$cmp`opé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'`$cmp`opé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 }
]
```

------