您可以使用 人口 来描述它
填充是用其他集合中的文档自动替换文档中指定路径的过程。我们可以填充单个文档,多个文档,普通对象,多个普通对象或查询返回的所有对象。
假设您的事件模式定义如下:
var mongoose = require('mongoose') , Schema = mongoose.Schemavar eventSchema = Schema({ title : String, location : String, startDate : Date, endDate : Date});var personSchema = Schema({ firstname: String, lastname: String, email: String, gender: {type: String, enum: ["Male", "Female"]} dob: Date, city: String, interests: [interestsSchema], eventsAttended: [{ type: Schema.Types.ObjectId, ref: 'Event' }]});var Event = mongoose.model('Event', eventSchema);var Person = mongoose.model('Person', personSchema);为了显示如何使用填充,首先创建一个人员对象
aaron = new Person({firstname: 'Aaron'})和一个事件对象event1= new Event({title: 'Hackathon', location: 'foo'}):aaron.eventsAttended.push(event1);aaron.save(callback);
然后,当您进行查询时,可以填充如下引用:
Person.findOne({ firstname: 'Aaron' }).populate('eventsAttended') // only works if we pushed refs to person.eventsAttended.exec(function(err, person) { if (err) return handleError(err); console.log(person);});


