You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB解决大小写问题,计算Tel Aviv的预订天数总和

解决MongoDB统计指定城市(忽略大小写)的字段总和问题

针对你的需求,有两种高效的修改方式:

方法一:先过滤再求和(推荐,性能更优)

先通过$match阶段筛选出所有城市名(忽略大小写)为Tel Aviv的文档,再直接求和,避免不必要的分组计算:

db.Customers.aggregate([
  {
    $match: {
      $expr: { $eq: [{ $toLower: "$city" }, "tel_aviv"] }
    }
  },
  {
    $group: {
      _id: null,
      total_days_booked: { $sum: "$Number_Days_booked" }
    }
  }
])
  • $expr允许在匹配条件中使用聚合表达式,这里通过$toLower统一转换city字段为小写,再和目标值"tel_aviv"比对
  • 分组时_id: null表示将所有匹配文档合并为一组,直接计算总和

方法二:先分组再过滤

如果需要保留分组逻辑,也可以先按小写城市名分组,再筛选出目标城市的分组结果:

db.Customers.aggregate([
  {
    $group: {
      _id: { $toLower: "$city" },
      total_days_booked: { $sum: "$Number_Days_booked" }
    }
  },
  {
    $match: { _id: "tel_aviv" }
  }
])

这种方式会先统计所有城市的总和,再筛选出Tel Aviv的结果,适合需要同时查看其他城市数据的场景,但性能不如方法一。

内容的提问来源于stack exchange,提问作者Itamar Nahum

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 09:27:23