Bạn có thể mô tả nó bằng cách sử dụng Dân số
Tổng thể là quá trình tự động thay thế các đường dẫn được chỉ định trong tài liệu bằng (các) tài liệu từ (các) bộ sưu tập khác. Wemay điền một tài liệu, nhiều tài liệu, đối tượng thuần túy, nhiều đối tượng thuần túy hoặc tất cả các đối tượng được trả về từ một truy vấn.
Giả sử Lược đồ sự kiện của bạn được xác định như sau:
var mongoose = require('mongoose')
, Schema = mongoose.Schema
var 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);
Để hiển thị cách điền được sử dụng, trước tiên hãy tạo một đối tượng người, aaron = new Person({firstname: 'Aaron'})
và một đối tượng sự kiện, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
Sau đó, khi bạn thực hiện truy vấn của mình, bạn có thể điền các tham chiếu như sau:
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);
});