mongo 数据库中 2 collections 之间的映射

mapping between 2 collections in mongo DB

我想在 2 collection 之间做一个映射,并从 属性 的 属性 的值修改 collection 1 的 属性 的值=25=]2

这里 collection 1 :

{
  "field1": "value1",
  "mycode": "1234",
  "field3": "value3"
}

这是我的 collection 2 :

{
   "code": "1234",
   "label": "myLabel"
}

我想把2个collection映射到mycode为collection1和code为collection2修改mycode

的值

这是预期的结果:

{
  "field1": "value1",
  "mycode": "myLabel",
  "field3": "value3"
}

你可以用某种方式做一个聚合管道
第一步 - 在collection1中映射mycode,在collection2
中映射code 第二步 - $unwind 从数组中取出查找的部分
第 3 步 - 将 mycode 值设置为 label 并显示 field1field3 并隐藏 _id(如果需要) )

demo

db.collection1.aggregate([
  {
    $lookup: {
      "from": "collection2",
      "localField": "mycode",
      "foreignField": "code",
      "as": "mycode"
    }
  },
  {
    $unwind: "$mycode"
  },
  {
    $project: {
      "field1": 1,
      "field3": 1,
      "_id": 0,
      "mycode": "$mycode.label"
    }
  }
])