首页 > 解决方案 > MongoDB聚合唯一对操作系统值

问题描述

蒙戈游乐场

假设我有这些数据:

[
  { "PartnerId": 1, PartnerName: "AA" },
  { "PartnerId": 2, PartnerName: "BB" },
  { "PartnerId": 1, PartnerName: "AA" },
  { "PartnerId": 3, PartnerName: "CC" },
  { "PartnerId": 3, PartnerName: "CC" },
  { "PartnerId": 2, PartnerName: "BB" }
]

我想只提取唯一的对,所以结果是:

[
  { "PartnerId": 1, PartnerName: "AA" },
  { "PartnerId": 2, PartnerName: "BB" },
  { "PartnerId": 3, PartnerName: "CC" }
]

我应该做一个地图和过滤器还是只做一个组和项目?

标签: mongodbmongodb-query

解决方案


  • $group通过这两个领域
  • $project显示真实字段名称
db.collection.aggregate([
  {
    $group: {
      _id: {
        PartnerId: "$PartnerId",
        PartnerName: "$PartnerName"
      }
    }
  },
  {
    $project: {
      _id: 0,
      PartnerId: "$_id.PartnerId",
      PartnerName: "$_id.PartnerName"
    }
  }
])

操场


推荐阅读