📜  MongoDB $floor 运算符(1)

📅  最后修改于: 2023-12-03 14:44:21.285000             🧑  作者: Mango

MongoDB $floor 运算符

MongoDB $floor 运算符是用于向下取整的运算符。它可以将一个数值或日期向下取整到最接近的整数或指定的小数位数。

语法
{ $floor: <expression> }
参数
  • expression: 必需,要进行向下取整操作的表达式,可以是数字或日期型。
示例
向下取整数字

下面的示例演示了如何使用 $floor 运算符向下取整数字:

db.sales.aggregate([
   {
      $project: {
         salesAmount: 1,
         flooredSalesAmount: { $floor: "$salesAmount" }
      }
   }
])

这个聚合查询将 salesAmount 字段向下取整到最接近的整数,并在结果文档中添加一个名为 flooredSalesAmount 的新字段。

向下取整日期

下面的示例演示了如何使用 $floor 运算符向下取整日期:

db.events.aggregate([
   {
      $project: {
         eventDate: 1,
         flooredDate: { $floor: "$eventDate" }
      }
   }
])

这个聚合查询将 eventDate 字段向下取整到最接近的整数,并在结果文档中添加一个名为 flooredDate 的新字段。

向下取整到指定位数

下面的示例演示了如何使用 $floor 运算符向下取整到指定位数的小数:

db.sales.aggregate([
   {
      $project: {
         salesAmount: 1,
         flooredSalesAmount: { $floor: { $multiply: [ "$salesAmount", 100 ] } }
      }
   }
])

在这个聚合查询中,我们使用 $multiply 运算符将 salesAmount 值乘以 100,这样可以向下取整到两位小数。然后,我们使用 $floor 运算符将结果向下取整到最接近的整数,并将其保存在名为 flooredSalesAmount 的新字段中。

注意事项
  • 如果 $floor 运算符应用在日期类型的字段上,它会舍去日期的时间部分,然后对截断后的日期进行向下取整。
  • 如果表达式不是数字或日期类型的,MongoDB 会尝试将它转换为数字类型,然后执行向下取整操作。如果无法转换,则返回一个错误。