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

MongoDB使用distinct查询数组字段结果扁平化,如何获取原数组结构

问题原因

MongoDB 的 distinct() 方法处理数组类型字段时,默认会先展开数组元素再执行去重逻辑,因此你拿到的是扁平化的一维经纬度字符串数组,无法保留原坐标数组的嵌套结构。

解决方案

使用 MongoDB 聚合框架实现按完整坐标数组去重,查询语句如下:

const uniqueCoordinates = db.collection("mydb").aggregate([
  // 按完整coordinate数组分组,相同数组会被合并为同一组,天然实现去重
  {
    $group: {
      _id: "$coordinate"
    }
  },
  // 调整输出结构,移除默认的_id字段
  {
    $project: {
      _id: 0,
      coordinate: "$_id"
    }
  }
// 提取所有坐标数组,组装为你需要的格式
]).map(doc => doc.coordinate)

执行上述语句后,uniqueCoordinates 就是你期望的嵌套数组格式的去重坐标结果。如果你的集合数据量较大,建议给 coordinate 字段加索引,可大幅提升查询效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 09:57:02