खोज…


वाक्य - विन्यास

  • Query.populate (पथ, [चयन], [मॉडल], [मैच], [विकल्प]]

पैरामीटर

पैरामीटर व्याख्या
पथ < ऑब्जेक्ट, स्ट्रिंग > या तो सभी मापदंडों को निर्दिष्ट करने या ऑब्जेक्ट को पॉप्युलेट करने का मार्ग
[चुनते हैं] < ऑब्जेक्ट, स्ट्रिंग > जनसंख्या क्वेरी के लिए फ़ील्ड चयन (सब कुछ शामिल करने के लिए '-id' उपयोग कर सकते हैं लेकिन id फ़ील्ड)
[नमूना] < मॉडल > जनसंख्या के लिए आप जिस मॉडल का उपयोग करना चाहते हैं। यदि निर्दिष्ट नहीं है, तो स्कीमा स्कीमा के रेफरी क्षेत्र में नाम से मॉडल दिखेगा।
[मैच] < ऑब्जेक्ट > जनसंख्या के लिए शर्तें
[विकल्प] < ऑब्जेक्ट > जनसंख्या क्वेरी के लिए विकल्प (सॉर्ट, आदि)

एक साधारण मोंगोज़ पॉपुलेट उदाहरण है

.populate() में Mongoose आपको अपने वर्तमान संग्रह या दस्तावेज़ में उस संग्रह की जानकारी के साथ एक संदर्भ को पॉप्युलेट करने की अनुमति देता है। पिछला भ्रामक लग सकता है लेकिन मुझे लगता है कि एक उदाहरण किसी भी भ्रम को दूर करने में मदद करेगा।

निम्नलिखित कोड दो संग्रह बनाता है, उपयोगकर्ता और पोस्ट:

var mongoose = require('mongoose'),
  Schema = mongoose.Schema

var userSchema = Schema({
  name: String,
  age: Number,
  posts: [{ type: Schema.Types.ObjectId, ref: 'Post' }]
});

var PostSchema = Schema({
  user: { type: Schema.Types.ObjectId, ref: 'User' },
  title: String,
  content: String
});

var User = mongoose.model('User', userSchema);
var Post = mongoose.model('Post', postSchema);

यदि हम प्रत्येक उपयोगकर्ता के सभी पोस्ट्स को पॉप्युलेट करना चाहते हैं जब हम .find({}) सभी उपयोगकर्ताओं को, हम निम्नलिखित कार्य कर सकते हैं:

User
  .find({})
  .populate('posts')
  .exec(function(err, users) {
    if(err) console.log(err);
    //this will log all of the users with each of their posts 
    else console.log(users);
  }) 


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow