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

MongoDB如何统计多文档中Location字段的唯一值数量?

统计MongoDB中Location字段的唯一地址数量

方法一:正确使用distinct命令

如果之前用distinct没成功,先检查调用语法是否正确。直接获取唯一Location数组后取长度即可:

db.你的集合名.distinct("Location").length

注意:如果Location字段存在多余空格、大小写不一致、隐性特殊字符(比如全角/半角空格),相同地址会被判定为不同值,导致统计不准。

方法二:用聚合框架(更可靠,支持地址清洗)

如果地址格式不统一,优先用聚合分组+统计的方式,还能先对地址做清洗处理:

db.你的集合名.aggregate([
  // 第一步:清洗Location字段(可选但推荐)
  {
    $addFields: {
      cleanedLocation: {
        // 先去除前后空格,再把多个连续空格替换为单个
        $replaceAll: {
          input: { $trim: { input: "$Location" } },
          find: "  ",
          replacement: " "
        }
      }
    }
  },
  // 第二步:按清洗后的地址分组
  {
    $group: {
      _id: "$cleanedLocation", // 不需要清洗的话直接用"$Location"
      docCount: { $sum: 1 } // 可选:统计每个地址对应的文档数
    }
  },
  // 第三步:统计唯一地址的总数量
  {
    $count: "uniqueLocationCount"
  }
])

执行后会返回类似{ "uniqueLocationCount" : 50000 }的结果,就是你要的唯一地址对应的文档组数。

如果不需要统计单个地址的文档数,也可以简化聚合步骤:

db.你的集合名.aggregate([
  { $group: { _id: "$Location" } },
  { $count: "uniqueLocationCount" }
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 11:52:08