MongoDB $floor 运算符介绍

在 MongoDB 中, $floor 运算符用于向下取整,返回小于等于指定数值的最大整数。

语法

$floor 运算符的语法如下:

{ $floor: <number> }

其中,<number> 是要取整的数字。

使用场景

在某些情况下,需要对数据库中的数值进行取整操作,例如对数据进行四舍五入,或者向下取整等。这时可以使用 $floor 运算符。

示例

下面提供两个示例来演示 $floor 运算符的使用。

示例 1

假设有一个 students 集合,存储了学生的成绩信息。需要查询每个学生的平均分,并向下取整到整数位。

示例数据:

{ name: "Alice", scores: [75, 85, 90] }
{ name: "Bob", scores: [80, 90, 95] }

查询代码:

db.students.aggregate([
  {
    $project: {
      name: 1,
      averageScore: {
        $floor: {
          $avg: "$scores"
        }
      }
    }
  }
])

查询结果:

{ "_id": ObjectId("..."), "name": "Alice", "averageScore": 83 }
{ "_id": ObjectId("..."), "name": "Bob", "averageScore": 88 }

示例 2

假设有一个 orders 集合,存储了订单的金额信息。需要查询所有订单金额的整数部分。

示例数据:

{ orderNo: "202201010001", amount: 85.6 }
{ orderNo: "202201010002", amount: 120.8 }
{ orderNo: "202201010003", amount: 99 }

查询代码:

db.orders.aggregate([
  {
    $project: {
      orderNo: 1,
      integerPart: {
        $floor: "$amount"
      }
    }
  }
])

查询结果:

{ "_id": ObjectId("..."), "orderNo": "202201010001", "integerPart": 85 }
{ "_id": ObjectId("..."), "orderNo": "202201010002", "integerPart": 120 }
{ "_id": ObjectId("..."), "orderNo": "202201010003", "integerPart": 99 }

结论

本文介绍了 MongoDB 中的 $floor 运算符,它可以用于向下取整并返回小于等于指定数值的最大整数。在实际应用中,可以通过 $floor 运算符对数据进行取整操作,满足不同的业务需求。