是否有可能在mongoose中填充一个字段,其中还包含其他信息?

时间:2017-09-27 15:47:11

标签: node.js mongodb mongoose mongoose-schema mongoose-populate

这是我的架构的相关部分:

data = $.param(data);

此处的费率和推荐是学生在该课堂环境中有效的属性,不能从学生模型中填充。

有没有办法定义我的架构,以便我可以保留这些字段(费率和推荐),还可以使用populate链接其他字段,例如学生的姓名,年龄等?

1 个答案:

答案 0 :(得分:1)

将架构更改为:

var classroomSchema = mongoose.Schema({
    students: [{
        rate: { type: Number, default: 200 },

        user: { ref: 'User', type: Schema.Types.ObjectId },
        referrals: [mongoose.Schema.Types.ObjectId],
    }],
});

用法:

classroom
  .findOne(...)
  .populate('user')
  .exec((err, classroom) => {
    let student0 = classroom.students[0];
    // student0.rate
    // student0.user.name
  });