如何使用 Group By 和 concat 字段作为字符串

Ank*_*oni 3 mongodb mongodb-query

我是MongoDB 3.2 的新手,

考虑下面的例子,

{ "_id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 1" }
{ "_id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 2" }
{ "_id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 3" }
Run Code Online (Sandbox Code Playgroud)

如何使用Group By _id并创建单个字段并连接所有文档字段,以下是预期的输出,

{ "_id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 1, GSTR 2, GSTR 3" }
Run Code Online (Sandbox Code Playgroud)

我在下面使用但它给出了数组,

db.getCollection('Clients').aggregate(
      [
        {
            $group : {
             _id : "$_id",
             services :  "$services"
            }
        }
      ]
    ).map( doc =>
      Object.assign(
        doc,
       { "services": doc.services.join(",") }
      )
    );
Run Code Online (Sandbox Code Playgroud)

它给出输出为

[{ "_id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 1, GSTR 2, GSTR 3" }]
Run Code Online (Sandbox Code Playgroud)

小智 5

我检查过它工作正常

db.client.insert([
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 1" },
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 2" },
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 3" }
]);
Run Code Online (Sandbox Code Playgroud)
db.client.insert([
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 1" },
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 2" },
    { "id" : "2tLX8ALYfRvbgiurZ", "service" : "GSTR 3" }
]);
Run Code Online (Sandbox Code Playgroud)