如何在 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
我是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