Definición
$cmpCompara dos valores y devuelve:
-1si el primer valor es menor que el segundo.1si el primer valor es mayor que el segundo.0si los dos valores son equivalentes.
El
$cmpcompara tanto el valor como el tipo, utilizando el orden de comparación BSON especificado para valores de diferentes tipos.$cmptiene esta sintaxis:{ $cmp: [ <expression1>, <expression2> ] } Para obtener más información sobre las expresiones, consulta Expresiones.
Ejemplo
Se puede crear una colección inventory con estos documentos:
db.inventory.insertMany( [ { _id : 1, item : "abc1", description: "product 1", qty: 300 }, { _id : 2, item : "abc2", description: "product 2", qty: 200 }, { _id : 3, item : "xyz1", description: "product 3", qty: 250 }, { _id : 4, item : "VWZ1", description: "product 4", qty: 300 }, { _id : 5, item : "VWZ2", description: "product 5", qty: 180 } ] )
Utilice el operador $cmp para comparar el valor qty con 250:
db.inventory.aggregate( [ { $project: { item: 1, qty: 1, cmpTo250: { $cmp: [ "$qty", 250 ] }, _id: 0 } } ] )
Salida:
{ item : "abc1", qty : 300, cmpTo250 : 1 } { item : "abc2", qty : 200, cmpTo250 : -1 } { item : "xyz1", qty : 250, cmpTo250 : 0 } { item : "VWZ1", qty : 300, cmpTo250 : 1 } { item : "VWZ2", qty : 180, cmpTo250 : -1 }