2013-05-20 14 views
29

ho uno schema Mongoose con una serie lists di oggetti che sono costituiti da un riferimento a un'altra raccolta e un array nidificato di numeri:Mongoose compilare con array di oggetti che contengono ref

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); 

Tuttavia, non posso ottenere populate funzionare come previsto senza ottenere TypeError: Cannot read property 'ref' of undefined. Ho provato populate('list') e populate('lists list') ma non sto chiamando le cose correttamente o il mio schema non è formato correttamente. Io non ho questo problema se ho semplicemente riferimento La liste da loro stessi:

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

ma voglio avere la matrice di assegnazioni al fianco di ciascuna lista. Cosa devo fare per ottenere il comportamento che voglio?

risposta

46

Ho trovato la risposta: populate('lists.list') funziona. Grazie a questa domanda: Mongoose populate within an object?

+1

Ciao amico questo non funziona per me qualsiasi cosa mi manca. non ho usato richiesto –

Problemi correlati