Arrays 带有集合数组的Mongodb 2集合

Arrays 带有集合数组的Mongodb 2集合,arrays,mongodb,Arrays,Mongodb,我有两个集合,集合B有一个常规设置,第二个集合在字段中有一个ID存储在字段B中的字段中,它需要加入它们以查看结果 收藏A { "_id": { "$oid": "602ece156f898fc3a6da0440" }, "name": "Atlas Adventures 2021", "setup": [{ "_id": {

我有两个集合,集合B有一个常规设置,第二个集合在字段中有一个ID存储在字段B中的字段中,它需要加入它们以查看结果

收藏A

{
"_id": {
    "$oid": "602ece156f898fc3a6da0440"
},
"name": "Atlas Adventures 2021",
"setup": [{
    "_id": {
        "$oid": "602ece156f898fc3a6da0441"
    },
    "typ": {
        "$oid": "602eca46ad462fc07836d5e2"
    },
    "cena": 100,
    "kapacita": 100
}, {
    "_id": {
        "$oid": "602ece156f898fc3a6da0442"
    },
    "typ": {
        "$oid": "602eca59ad462fc07836d5e3"
    },
    "cena": 50,
    "kapacita": 200
}],
}

B组

{
  {
      "_id": {
          "$oid": "602eca46ad462fc07836d5e2"
      },
      "nazev": "12 - 14 let - bez rozlišení\t",
      "zkratka": "A",
      "__v": 0,
      "slozeniMaximum": 2,
      "slozeniMinimum": 2,
  },
  {
      "_id": {
          "$oid": "602eca59ad462fc07836d5e3"
      },
      "zkratka": "B",
      "nazev": "15-17 let",
      "__v": 0,
      "slozeniMaximum": 2,
      "slozeniMinimum": 2,
  }
}
需要

但我不知道怎么做。 我尝试过聚合和管道,但我做错了。

根据这个例子,我创建了以下聚合。ObjectId可能有问题

CollectionB.aggregate([{
  $lookup: {
    from: 'CollectionA',
    let: { katId: '$_id' },
    pipeline: [
      {
        $match: {
          $expr: { $in: ['$setup.typ', '$$katId'] },
        },
      }
    ],
    as: 'kategorie',
  }
}

我仍然以失败告终

您是否检查了查找:?它将略有不同。但是如果读写比率允许,考虑去变性。
CollectionB.aggregate([{
  $lookup: {
    from: 'CollectionA',
    let: { katId: '$_id' },
    pipeline: [
      {
        $match: {
          $expr: { $in: ['$setup.typ', '$$katId'] },
        },
      }
    ],
    as: 'kategorie',
  }
}