MongoDB $cmp 运算符

2024 年 9 月 6 日 | 3 分钟阅读

MongoDB 中的 $cmp 运算符是什么?

MongoDB 提供了各种聚合管道运算符。 $cmp 运算符是其中一个运算符。 $cmp 运算符用于比较两个值或类型并返回结果。

它根据这些条件返回以下结果

  • 如果两个值相等,则返回 0。
  • 如果第一个值大于第二个值,则返回 1。
  • 如果第一个值小于第二个值,则返回 -1。

$log10 运算符的语法

示例

假设我们有一个包含以下文档的产品集合。

示例 1:使用 $cmp 运算符

在本例中,我们将使用 $cmp 运算符比较 length 和 width 字段。

输出

{
         "_id" : 1, 
         "name" : "rectangle",
         "length" : 11,
         "breath" : 10,
         "result" : 1
}
{
         "_id" : 2, 
         "name" : "square",
         "length" : 10,
         "breath" : 10,
         "result" : 0
}
{
         "_id" : 3, 
         "name" : "rectangle",
         "length" : 14,
         "breath" : 16,
         "result" : -1
}
{
         "_id" : 4, 
         "name" : "square",
         "length" : 6,
         "breath" : 6,
         "result" : 0
}
{
         "_id" : 5, 
         "name" : "rectangle",
         "length" : 11,
         "breath" : 16,
         "result" : -1
}   

假设我们将以下文档添加到我们的集合中

示例 2:比较空值

输出

{
         "_id" : 6, 
         "name" : "rectangle",
         "length" : null,
         "breath" : 10,
         "result" : -1
}
{
         "_id" : 7, 
         "name" : "square",
         "length" : 10,
         "breath" : null,
         "result" : 1
}
{
         "_id" : 8, 
         "name" : "rectangle",
         "length" : null,
         "breath" : null,
         "result" : 0
}    

假设我们将以下文档添加到我们的集合中

示例 3:比较不同类型

输出

{
         "_id" : 9, 
         "name" : "item_1",
         "a" : ISODate("2020-05-09T23:30:15.100Z"),
         "b" : 10,
         "result" : 1
}
{
         "_id" : 10, 
         "name" : "item_2",
         "a" : 10,
         "b" : ISODate("2012-11-18T04:00:20.112Z"),	
         "result" : -1
}
{
         "_id" : 11, 
         "name" : "item_3",
         "a" : ISODate("2018-11-14T04:00:20.112Z"),
         "b" : ISODate("2015-10-07T04:00:20.112Z"),
         "result" : 1
}