如何在 Mongoose 中获取一个系的所有学生 MongoDb

How to get all the students of a department in Mongoose MongoDb

我是MongoDB的业余爱好者,正在尝试建立一个教育数据库。

我有两个文档模型:1) Department 2) Student

每个学生文档都有 ref: Department 及其 _id。

那么,如果我有部门 _id,我怎样才能找到它拥有的所有学生?

const department = mongoose.schema({
  name: { type: String } 
})
const student = mongoose.schema({
  name: { type: String },
  department: { mongoose.Schema.Types.ObjectId, ref: Department}
})

你只需要像这样使用$lookup

使用这个 $lookup 你是在告诉 mongo “给我所有来自 student 集合的文档,其中它的 department 字段就像 _id 中的字段 department 集合并使用这些值创建一个名为 departmens 的数组。

yourDepartmentModel.aggregate([
  {
    "$lookup": {
      "from": "student",
      "localField": "_id",
      "foreignField": "department",
      "as": "departments"
    }
  }
])

示例here

好吧,在单个集合中查找所有条目或元素的最简单方法如下

let filter = {};
let result = await your User.find(filter);
Where: User is your Data Model and You can change it according to your database