Javascript 猫鼬种群不返回所有田地

Javascript 猫鼬种群不返回所有田地,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,因此,我: 用户模式: var UserSchema=newmongoose.Schema({ 名字:String, 姓氏:String, 图片:{ 类型:字符串, 默认值:“http://via.placeholder.com/250x200" }, 电邮:{ 类型:字符串, 必需:[为真,“电子邮件丢失”。], 独一无二:真的 }, 种类:{ 类型:字符串, 枚举:[“管理员”、“教师”、“学生”], 默认值:“学生” }, 伊萨明:{ 类型:布尔型, 默认值:false }, 我建议:{

因此,我: 用户模式

var UserSchema=newmongoose.Schema({
名字:String,
姓氏:String,
图片:{
类型:字符串,
默认值:“http://via.placeholder.com/250x200"
},
电邮:{
类型:字符串,
必需:[为真,“电子邮件丢失”。],
独一无二:真的
},
种类:{
类型:字符串,
枚举:[“管理员”、“教师”、“学生”],
默认值:“学生”
},
伊萨明:{
类型:布尔型,
默认值:false
},
我建议:{
类型:布尔型,
默认值:false
},
用户名:{
类型:字符串,
必需:[true,“缺少用户名”。],
独一无二:真的
},
密码:String
},选项);
插件(passportLocalMongoose);
module.exports=mongoose.model(“用户”,UserSchema);
学生模式

var options={discriminatorKey:'kind'};
var StudentSchema=newmongoose.Schema({
索引编号:字符串,
},选项);
module.exports=User.discriminator(“学生”,StudentSchema);
CourseSchema

var CourseSchema=newmongoose.Schema({
代码:{
类型:字符串,
独一无二:真的
},
名称:String,
描述:字符串,
图片:{
类型:字符串,
默认值:“http://via.placeholder.com/250x200"
},
数据:[{
标题:字符串,
内容:字符串
}],
教师:[{
类型:mongoose.Schema.Types.ObjectId,
参考:“老师”
}],
学生:[{
身份证:{
类型:mongoose.Schema.Types.ObjectId,
参考:“学生”
},
入场日期:{
类型:日期,
默认值:Date.now
}
}]
});
在我的数据库中,我有以下学生(使用MongoDB Compass显示):

还有,我有一位老师:

这门课程是:

现在在课程展示页面,我想让学生和老师注册。我是这样说的:

Course.findById(请求参数id)
.populate(“students.id”)
.填充(“教师”)
.exec(函数(err,foundCourse){…}
我只知道:

学生:[
{id:59dbd1259df328279cd5d588,起始日期:2017-10-12T22:29:48.297Z},
{id:59dc07088c6fd636188d87c5,起始日期:2017-10-12T22:29:48.297Z}
],
教师:[
{u id:59dbc34832b0041b44a7f648,isPromote:false,isAdmin:false,kind:'Teacher',image:'http://via.placeholder.com/250x200' }
]
请注意:

  • 对于学生,我只返回参考ID,没有填充字段
  • 对于教师,我没有得到一些字段,如firstName、lastName、username等(教师也是用户的鉴别器)
我希望从该填充查询中获得所有字段,例如,学生[0]应该如下所示:

{\u id:59dbd1259df328279cd5d588,isPromote:false,isAdmin:false,种类:'Student',图像:'http://via.placeholder.com/250x200,名字:“ss”,姓氏:“ss”,用户名:“ss”,输入日期:2017-10-12T22:29:48.297Z}

有人能告诉我如何获取这些字段,如何以正确的方式填充吗?

欢迎使用Stack Overflow。与其在同一个问题上发布变体,一般的概念是发现问题上的链接并进行修改。特别是当您看到要求您这样做的评论时。请注意,您实际上在做什么我被要求“同时”显示相关的模式和您认为相关的数据。抱歉,但我是新来的,仍在学习如何正确提问,我被困在这个项目上几天了,因为我无法解决它,而且还没有答案:(除非你能提供一个可以复制的案例,否则你不会得到答案。这意味着我们需要查看你的“数据”由于您以前被询问过,但现在还没有这样做。因此,请您提供一些相关数据和您期望的结果。这样可以复制您的问题,并提供实际提供有效解决方案所必需的内容。请尝试理解我们不是坐在您的办公桌上。请参阅,以获取有关您如何提出此类问题的提示。请删除以前的问题。这是同一个问题,只是最后修饰了一下,但仍然缺少必要的详细信息。以前的问题没有被接受的或经过投票的答案,因此您可以删除它们。这些更改是否足够,或者我需要添加更多?欢迎使用堆栈溢出。而不是在同样的问题,一般的概念是发现问题上的链接并进行修改。特别是当你看到要求你这样做的评论时。注意到之前要求你显示“两者”相关的模式和您认为相关的数据。抱歉,但我是新来的,仍然在学习如何正确提问,我被困在这个项目上几天了,因为我无法解决它,而且还没有答案:(除非你能提供一个可以复制的案例,否则你不会得到答案。这意味着我们需要查看你的“数据”由于您以前被询问过,但现在还没有这样做。因此,请您提供一些相关数据和您期望的结果。这样可以复制您的问题,并提供实际提供有效解决方案所必需的内容。请尝试理解我们不是坐在您的办公桌上。请参阅,以获取有关您如何提出此类问题的提示。请删除以前的问题。这是同一个问题,只是最后修饰了一下,但仍然缺少必要的详细信息。以前的问题没有被接受或投票赞成的答案,因此您可以删除它们。这些更改是否足够,或者我需要添加更多?