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

如何将MongoDB两个集合的数据合并为按名称排序的统一文档集合

实现方案

你需要的效果可以通过MongoDB的$unionWith聚合算子实现,该算子专门用于合并多个集合的查询结果,不需要做关联操作,完全匹配你的需求。完整聚合查询语句如下:

db.Analytics_Region.aggregate([
  // 处理公共区域集合的字段,只保留需要的字段
  {
    $project: {
      _id: 1,
      name: 1,
      type: 1,
      province: 1
    }
  },
  // 合并自定义区域集合的处理结果
  {
    $unionWith: {
      coll: "Analytics_Region_Custom",
      pipeline: [
        // 给自定义区域补充要求的固定字段
        {
          $addFields: {
            type: "custom",
            province: null
          }
        },
        // 统一字段结构,过滤多余字段
        {
          $project: {
            _id: 1,
            name: 1,
            type: 1,
            province: 1
          }
        }
      ]
    }
  },
  // 按name字段字母升序排序
  {
    $sort: {
      name: 1
    }
  }
])

步骤说明

  • 先对Analytics_Region集合做字段投影,过滤掉你不需要的CSD、geometry等冗余字段,保留目标结构的四个字段
  • 通过$unionWith关联Analytics_Region_Custom集合,对该集合的文档先新增要求的type: "custom"和province: null字段,再做同样的字段投影保证两个集合的输出结构一致
  • 合并完成后统一对所有文档按name字段做升序排序,得到你需要的最终结果

内容的提问来源于stack exchange,提问作者Jonathan D'Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:57:02