MST

星途 面试题库

面试题:MongoDB中max与min累加器函数在聚合操作中的应用对比

假设有一个集合orders,其中每个文档包含字段order_amount表示订单金额。请分别使用max和min累加器函数,在聚合操作中找出订单金额的最大值和最小值,并解释这两个函数在这种场景下的行为差异。
15.0万 热度难度
数据库MongoDB

知识考点

AI 面试

面试题答案

一键面试

使用max和min累加器函数找出订单金额的最大值和最小值

假设使用的是MongoDB,以下是聚合操作示例:

db.orders.aggregate([
    {
        $group: {
            _id: null,
            maxOrderAmount: { $max: "$order_amount" },
            minOrderAmount: { $min: "$order_amount" }
        }
    }
]);

行为差异解释

  • $max函数:在聚合操作的分组阶段,$max函数遍历每个分组中的文档,将当前文档的指定字段值与已记录的最大值进行比较。如果当前值大于已记录的最大值,则更新最大值。这样,最终得到的就是分组中文档指定字段(这里是order_amount)的最大值。
  • $min函数:在聚合操作的分组阶段,$min函数遍历每个分组中的文档,将当前文档的指定字段值与已记录的最小值进行比较。如果当前值小于已记录的最小值,则更新最小值。最终得到的是分组中文档指定字段(order_amount)的最小值。

两者的主要差异在于比较逻辑,$max取较大值,$min取较小值。