如何 return 另一个字段和不同的字段来自 mongodb 不同的

How to return another field and distinct field from mongodb distinct

大家好,我想问一下,如何在 distinct mongodb 方法的结果中 return 另一个字段?

比如我有以下文件:

[
    {
        "id": 1,
        "segment": "AAS",
        "partner": {}
    },
    {
        "id": 2,
        "segment": "AAS",
        "partner": {}
    },
    {
        "id": 3,
        "segment": "BBS",
        "partner": {}
    },
    {
        "id": 4,
        "segment": "CCS",
        "partner": {}
    },
    {
        "id": 5,
        "segment": "DDS",
        "partner": {}
    }
]

我想区分段字段,但是,我也需要 return 合作伙伴字段:

[
    {
        "segment": "AAS",
        "partner": {}
    },
    {
        "segment": "BBS",
        "partner": {}
    },
    {
        "segment": "CCS",
        "partner": {}
    },
    {
        "segment": "DDS",
        "partner": {}
    }
]

我怎样才能产生那个?是否可以使用 mapReduce 方法?我该如何实施?

谢谢!

假设您不关心获得的 AAS。我选第一个。

db.collection.aggregate([
  {
    $group: {
      _id: "$segment",
      field: {
        $first: "$$ROOT"
      }
    }
  },
  {
    $replaceWith: "$field"
  },
  {
    $unset: [ "id", "_id" ]
  }
])

mongoplayground