繁体   English   中英

Mongodb 2 集合与集合数组

[英]Mongodb 2 collection with collection array

我有两个collections,Collection B有一个通用的设置,第二个collections有一个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,
  }
}

需要

{
  {
      "_id": {
          "$oid": "602eca46ad462fc07836d5e2"
      },
      "nazev": "12 - 14 let - bez rozlišení\t",
      "zkratka": "A",
      "slozeniMaximum": 2,
      "slozeniMinimum": 2,
      "cena": 50,
      "kapacita": 200,
  },
  {
      "_id": {
          "$oid": "602eca59ad462fc07836d5e3"
      },
      "zkratka": "B",
      "nazev": "15-17 let",
      "slozeniMaximum": 2,
      "slozeniMinimum": 2,
      "cena": 50,
      kapacita": 200,
  }
}

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

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

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

我仍然以失败告终

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM