$cmp - Amazon DocumentDB

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

$cmp

El $cmp operador de Amazon DocumentDB se utiliza para comparar dos valores y devolver un valor entero que indica su orden relativo. Es un operador de comparación que compara dos expresiones y devuelve un valor entero de -1, 0 o 1, dependiendo de si el primer valor es menor, igual o mayor que el segundo valor, respectivamente.

Parámetros

  • expression1: la primera expresión que se va a comparar.

  • expression2: La segunda expresión que se va a comparar.

Ejemplo (MongoDB Shell)

El siguiente ejemplo demuestra el uso del $cmp operador para comparar dos valores numéricos.

Cree documentos de muestra

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

Ejemplo de consulta

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

Salida

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

En este ejemplo, el $cmp operador compara los value2 campos value1 y de cada documento. El resultado es:

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

Ejemplos de código

Para ver un ejemplo de código para usar el $cmp comando, elija la pestaña del idioma que desee usar:

Node.js

A continuación, se muestra un ejemplo del uso $cmp del operador en una aplicación de Node.js con el mongodb controlador:

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

Este es un ejemplo del uso del $cmp operador en una aplicación de Python con el pymongo controlador:

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

El resultado de los ejemplos de Node.js y Python será el mismo que el del ejemplo de MongoDB Shell:

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