介绍
这篇文章给大家介绍猫鼬中的嵌套怎么利用填充进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>定义模态强>
在模式中,我们需要使用<代码>模式。ObjectId> 代码来表示要指向数据在mongodb数据库中的_id。
<强>学校强>
在学校的模式中,院校属性是要包含的学院的_id属性数组。
var SchoolSchema =, new 模式({ ,名字:字符串, ,学院:[{ 类型:大敌;Schema.ObjectId, ,裁判:& # 39;大学# 39; }), ,createTime: { ,类型:日期, ,默认值:Date.now () ,} }); var School =, mongoose.model(& # 39;学校# 39;,,SchoolSchema);
学院
var CollegeSchema =, new 模式({ ,名字:字符串, ,学生:[{ 类型:大敌;Schema.ObjectId, ,裁判:& # 39;学生# 39; }), ,createTime: { ,类型:日期, ,默认值:Date.now () ,} }); var College =, mongoose.model(& # 39;大学# 39;,,CollegeSchema);
学生
var StudentSchema =, new 模式({ ,名字:字符串, ,性:字符串, ,年龄:数字, ,createTime: { ,类型:日期, ,默认值:Date.now () ,} }); var Student =, mongoose.model(& # 39;学生# 39;,,StudentSchema);
<强>查找强>
<强>直接查找强>
查找学校并找到指向的学院
学校 ,;() ,.populate(& # 39;大学# 39;,,(& # 39;_id # 39; & # 39;名字# 39;]) ,.exec(呃,,学校),=祝辞,{ ,if (错),{ ,console.log (err) ,} ,console.log(学校) 之前,})>填充的第一个参数是学校表中需要指向学院表的属性,即高校;第二个参数为要在学院中查找的属性。如果不填写第二个参数,则默认全都查出。
这样查找出的结果中,学院的学生属性是该学院包含的学生的_id属性。如果需要都查找出来需要使用嵌套填充。
<强>嵌套强>
学校 ,;() ,.populate ({ ,路径:& # 39;大学# 39; ,选择:[& # 39;_id # 39;,, & # 39;名字# 39;], ,//模型:,& # 39;大学# 39; ,填充:{ ,路径:& # 39;学生# 39; ,选择:[& # 39;_id # 39;,, & # 39;名字# 39;】 ,//模型:,& # 39;学生# 39; ,} ,}) ,.sort ({ ,createTime: 1 ,}).exec(函数(呃,,学校),{ ,if (错),{ ,console.log (err) ,} ,});关于猫鼬中的嵌套怎么利用填充进行处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。
猫鼬中的嵌套怎么利用填充进行处理