Je kunt het beschrijven met Bevolking
Populatie is het proces waarbij de opgegeven paden in het document automatisch worden vervangen door document(en) uit andere verzameling(en). We kunnen een enkel document, meerdere documenten, gewoon object, meerdere platte objecten of alle objecten invullen die door een query worden geretourneerd.
Stel dat uw gebeurtenisschema als volgt is gedefinieerd:
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);
Om te laten zien hoe invullen wordt gebruikt, maakt u eerst een persoonsobject, aaron = new Person({firstname: 'Aaron'})
en een gebeurtenisobject, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
Wanneer u uw vraag stelt, kunt u referenties als volgt invullen:
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);
});