【问题标题】:get _id based on value from a collection for a array and insert in mongodb collection根据数组集合中的值获取 _id 并插入到 mongodb 集合中
【发布时间】:2021-07-22 07:20:16
【问题描述】:

输入:

[{"gradeName":1,"sectionName":"a","maximumStudents":12},{"gradeName":2,"sectionName":"b","maximumStudents":13}]

在mongodb中如何从两个集合中获取gradeName和sectionName的_id并存储在第三个集合中说mergeddetails

合并细节:

[{"grade_id":"60f819e04a9d43158cabad55","section_id":"60f819e04a9d43158cabad54","maximumStudents":12},{"grade_id":"60f819e04a9d43158cabad59","section_id":"60f819e04a9d43158cabad5b","maximumStudents":13}]

其中grade_id是对应gradeName的_id,section_id是对应sectionName的_id 请帮助解决 mongodb quire 我正在使用 nodejs 编写 API

【问题讨论】:

  • 能否展示两个集合的样本数据

标签: node.js arrays mongodb api


【解决方案1】:

这两个集合都需要使用$lookup

db.student.aggregate([
  { $lookup: 
    { from: "grade", 
      localField: "gradeName", 
      foreignField: "grade", 
      as: "grade" 
    } 
  }, 
  {$lookup: 
    { from: "section", 
      localField: "sectionName", 
      foreignField: "section", 
      as: "section" 
    }
  },
  { $unwind: "$grade" },
  { $unwind: "$section" }, 
  {$project:
    {
      _id:0,
      "grade_id":"$grade._id",
      "section_id":"$section._id",
      maxStudent:1
    }
  }
])

【讨论】:

  • db.student 是最终的合并数组是吗
  • 请说 db.student 该集合在哪里创建
  • db.student 是输入集合[{"gradeName":1,"sectionName":"a","maximumStudents":12},{"gradeName":2,"sectionName":"b","maximumStudents":13}]
猜你喜欢
  • 2022-01-09
  • 2018-08-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
相关资源
最近更新 更多