Sie können es beschreiben, indem Population
Population verwendet, ist der Prozess der automatischen Bestimmung der angegebenen Pfade in dem Dokument mit dem Dokument (e) von anderer Sammlung ersetzt (s). Wir möglicherweise ein einzelnes Dokument, mehrere Dokumente, einfaches Objekt, mehrere einfache Objekte oder alle Objekte aus einer Abfrage zurückgegeben.
Angenommen, Ihr Ereignisschema ist wie folgt definiert:
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);
zu zeigen, um wie bevöl verwendet wird, erstellen Sie zuerst eine Person Objekt, aaron = new Person({firstname: 'Aaron'})
und ein Ereignisobjekt, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
Wenn Sie dann Ihre Abfrage erstellen, können Sie Referenzen wie folgt auffüllen:
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);
});
So etwas, glaube ich: 'eventsAttended: [{type: app.mongoose.Schema.ObjectId, ref: 'Event'}]' –