$cmp (agregação)
Definição
$cmp
Compara dois valores e retornos:
-1
se o primeiro valor for menor que o segundo.1
se o primeiro valor for maior que o segundo.0
se os dois valores forem equivalentes.
O
$cmp
compara valor e tipo, usando a ordem de comparação BSON especificada para valores de tipos diferentes.$cmp
tem esta sintaxe:{ $cmp: [ <expression1>, <expression2> ] } Para mais informações sobre expressões, consulte Operadores de Expressão.
Exemplo
Crie uma coleção inventory
com estes 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 } ] )
Use o operador $cmp
para comparar o valor qty
com 250
:
db.inventory.aggregate( [ { $project: { item: 1, qty: 1, cmpTo250: { $cmp: [ "$qty", 250 ] }, _id: 0 } } ] )
Saída:
{ 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 }