猫鼬中的嵌套怎么利用填充进行处理

  介绍

这篇文章给大家介绍猫鼬中的嵌套怎么利用填充进行处理,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

<强>定义模态

在模式中,我们需要使用<代码>模式。ObjectId>

<强>学校

在学校的模式中,院校属性是要包含的学院的_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)   ,}   ,});

关于猫鼬中的嵌套怎么利用填充进行处理就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

猫鼬中的嵌套怎么利用填充进行处理