Anda dapat mendeskripsikannya dengan menggunakan Populasi
Populasi adalah proses secara otomatis mengganti jalur yang ditentukan dalam dokumen dengan dokumen dari koleksi lain. Kami dapat mengisi satu dokumen, beberapa dokumen, objek biasa, beberapa objek biasa, atau semua objek yang dikembalikan dari kueri.
Misalkan Skema Acara Anda didefinisikan sebagai berikut:
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);
Untuk menunjukkan bagaimana populate digunakan, pertama buat objek person, aaron = new Person({firstname: 'Aaron'})
dan objek acara, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
Kemudian, ketika Anda membuat kueri, Anda dapat mengisi referensi seperti ini:
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);
});