$cmp(集計)
定義
$cmp
2 つの値を比較し、以下を返します。
-1
1 番目の値が 2 番目の値 より小さい場合 。1
1 番目の値が 2 番目の値 より大きい 場合は になります。0
2 つの値が等しい場合は 。
$cmp
は、異なる型の値に対して指定された BSON 比較順序を使用して、値と型の両方を比較します。$cmp
の構文は次のとおりです。{ $cmp: [ <expression1>, <expression2> ] } 式の詳細については、「式 」を参照してください。
例
これらのドキュメントを使用してinventory
コレクションを作成します。
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 } ] )
$cmp
演算子を使用して、 qty
の値と250
を比較します。
db.inventory.aggregate( [ { $project: { item: 1, qty: 1, cmpTo250: { $cmp: [ "$qty", 250 ] }, _id: 0 } } ] )
出力:
{ 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 }