MongoDB 忽略在聚合中使用唯一键的重复文档

MongoDB Ignoring duplicate documents using unique key in aggregate

文档看起来像这样。

{
   "sId": "s1",
   "language": "hindi",
   "service": "editing",
   "count": 5,
},
{
   "sId": "s2",
   "language": "hindi",
   "service": "editing",
   "count": 6,
},
{
   "sId": "s2",
   "language": "hindi",
   "service": "reading",
   "count": 6,
},
{
   "sId": "s3",
   "language": "english",
   "service": "reading",
   "count": 10,
}

我想要的结果应该是这样的

{
  "language":"hindi",
  "count": 11
},
{
  "language":"english",
  "count": 10
}

我试过这样的聚合查询

{
  "$group": {
            "_id": {
               "lang": "$language",
               "sId": "$sId"
            },
            "count": {"$sum": "$count"}
        }
}

sId: s2 中它应该忽略第二个对象。

任何人都可以告诉我如何实现上述目标。

您可以使用$first 获取每个组的第一个元素。然后您可以再次使用 $grouplanguage.

求和
{
  "$group": {
    "_id": {
      "language": "$language",
      "sId": "$sId"
    },
    "count": {
      "$first": {
        "$sum": "$count"
      }
    }
  }
}

https://mongoplayground.net/p/3_RjSt1wtRS