查找一个对象后,猫鼬在一个集合中聚合合并数据

Mongoose aggregate merge data in one collection after lookup to one object

我有一个集合 A,其中的数据类似于

{
 id: 2,
 name: "test"
},
{
 id: 4,
 name: "test4"
}

我有第二个集合 B,其中的数据如下:

{
 id: 444,
 name: "a",
 colA_id: 2
},
{
 id: 555,
 name: "b",
 colA_id: 2
},
{
 id: 555,
 name: "c",
 colA_id: 10
},

聚合两个集合后,我想要这样的输出:

{
 id: 2,
 name: "test",
 list_of_b: {
   {
     id: 444,
     name: "a",
     colA_id: 2
   },
   {
    id: 555,
    name: "b",
    colA_id: 2
   },
  }
}

我尝试合并,但是每次都只能得到数据库的一条记录。

这只是一个简单的查找

数据库是

db={
  "collA": [
    {
      id: 2,
      name: "test"
    },
    {
      id: 4,
      name: "test4"
    }
  ],
  "collB": [
    {
      id: 444,
      name: "a",
      colA_id: 2
    },
    {
      id: 555,
      name: "b",
      colA_id: 2
    },
    {
      id: 555,
      name: "c",
      colA_id: 10
    }
  ]
}

聚合是

db.collA.aggregate([
  {
    "$lookup": {
      "from": "collB",
      "localField": "id",
      "foreignField": "colA_id",
      "as": "list_of_b"
    }
  }
])

工作Mongo playground