$cmp聚合运算符返回连个值的比较结果。
语法
{ $cmp: [ <expression1>, <expression2> ] }
表达式可以是任何类型,使用标准的BSON比较顺序对不同类型的值进行比较。
用法
$cmp对两个值进行比较,返回:
-1,第一个值小于第二个值1,第一个值大于第二个值0,两个值相等
举例
在inventory集合中有下面的文档:
{ "_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 }

被折叠的 条评论
为什么被折叠?



