2013-05-20 13 views
29

युक्त मैं वस्तुओं की एक सरणी lists है कि एक और संग्रह के लिए एक संदर्भ और संख्या का एक नेस्टेड सरणी से मिलकर बनता है के साथ एक नेवला स्कीमा है ऑब्जेक्ट की श्रेणी से अपने आप पॉप्युलेट:नेवला रेफरी

var Schema, exports, mongoose, schema; 

mongoose = require("mongoose"); 

Schema = mongoose.Schema; 

schema = new Schema({ 
    name: { 
    type: String, 
    required: true, 
    unique: true, 
    trim: true 
    }, 
    lists: [ 
    { 
     list: { 
     type: Schema.ObjectId, 
     require: true, 
     ref: "List" 
     }, 
     allocations: [ 
     { 
      type: Number, 
      required: true 
     } 
     ] 
    } 
    ], 
    createdAt: { 
    type: Date, 
    "default": Date.now 
    }, 
    updatedAt: { 
    type: Date 
    } 
}); 

exports = module.exports = mongoose.model("Portfolio", schema); 

हालांकि, मैं populate नहीं मिल सकता है TypeError: Cannot read property 'ref' of undefined प्राप्त किए बिना अपेक्षित काम करने के लिए। मैंने populate('list') और populate('lists list') की कोशिश की है, लेकिन मैं या तो सही तरीके से कॉल नहीं कर रहा हूं या मेरी स्कीमा सही ढंग से नहीं बनाई गई है।

lists: [ 
    { 
     type: Schema.ObjectId, 
     require: true, 
     ref: "List" 
    } 
    ] 

लेकिन मैं प्रत्येक सूची के साथ आवंटन सरणी है करना चाहते हैं: मैं अगर मैं बस खुद से सूचियों का संदर्भ इस समस्या नहीं है। मुझे जो व्यवहार चाहिए वो पाने के लिए मुझे क्या करने की ज़रूरत है?

उत्तर

46

मुझे जवाब मिला: populate('lists.list') काम करता है। इस प्रश्न के लिए धन्यवाद: Mongoose populate within an object?

+1

हाय दोस्त यह मेरे लिए कुछ भी काम नहीं कर रहा है। मैं जरूरी उपयोग का उपयोग किया है। –