Du kan beskrive det ved at bruge Befolkning
Population er processen med automatisk at erstatte de specificerede stier i dokumentet med dokument(er) fra andre samling(er). Vi kan udfylde et enkelt dokument, flere dokumenter, almindeligt objekt, flere almindelige objekter eller alle objekter, der returneres fra en forespørgsel.
Antag, at dit hændelsesskema er defineret som følger:
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);
For at vise, hvordan populate bruges, skal du først oprette et personobjekt, aaron = new Person({firstname: 'Aaron'})
og et begivenhedsobjekt, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
Derefter, når du foretager din forespørgsel, kan du udfylde referencer som denne:
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);
});