आप जनसंख्या . का उपयोग करके इसका वर्णन कर सकते हैं
<ब्लॉकक्वॉट>जनसंख्या दस्तावेज़ में निर्दिष्ट पथों को अन्य संग्रह (संग्रहों) से दस्तावेज़ (दस्तावेज़ों) के साथ स्वचालित रूप से बदलने की प्रक्रिया है। हम एक दस्तावेज़, एकाधिक दस्तावेज़, सादा वस्तु, एकाधिक सादा ऑब्जेक्ट, या क्वेरी से लौटाए गए सभी ऑब्जेक्ट को पॉप्युलेट कर सकते हैं।
मान लें कि आपकी इवेंट स्कीमा को इस प्रकार परिभाषित किया गया है:
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);
यह दिखाने के लिए कि कैसे आबादी का उपयोग किया जाता है, पहले एक व्यक्ति वस्तु बनाएं, aaron = new Person({firstname: 'Aaron'})
और एक ईवेंट ऑब्जेक्ट, event1 = new Event({title: 'Hackathon', location: 'foo'})
:
aaron.eventsAttended.push(event1);
aaron.save(callback);
फिर, जब आप अपनी क्वेरी बनाते हैं, तो आप इस तरह के संदर्भों को पॉप्युलेट कर सकते हैं:
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);
});