【发布时间】:2019-12-04 15:12:00
【问题描述】:
在 MongoDB 中处理 1-1(通过 refs)或 1-N(通过填充虚拟)关系很容易
但是如何处理 N-M 关系呢?
假设我有 2 个实体老师和教室
许多教师可以访问许多教室
许多教师可以访问许多教室
teacher.schema
{
name:String;
//classrooms:Array;
}
classrooms.schema
{
name:String;
//teachers:Array
}
是否有一种直接方式(类似于填充虚拟)来保持这种 N-M 关系,以便当一位老师被移除时,课堂上的老师也可以自动更换?
我应该使用像TeacherToClassroom 这样的第三个“桥”模式来记录他们的关系吗?
我在想这样的事情,比如computed value
teacher.schema
{
name:String;
classrooms:(row)=>{
return db.classrooms.find({_id:{$elemMatch:row._id }})
}
}
classrooms.schema
{
name:String;
teachers:{Type:ObjectId[]}
}
所以我只管理教室中的教师 ID,然后教学模式中的教室属性将自动计算
【问题讨论】:
-
我看到您编辑了大部分帖子。我的回答还能为您提供解决方案吗?
-
谢谢,但对不起兄弟。你anwser中的信息是我已经知道的。但这无济于事。我评论了你并解释了我的想法和寻找的东西
标签: mongodb mongoose-populate auto-populate