2013-05-20 10 views
29

Ich habe ein Mungo-Schema mit einer Reihe lists von Objekten, die von einem Verweis auf eine andere Sammlung und eine verschachtelte Anordnung von Zahlen bestehen:Mongoose bevölkern mit Array von Objekten 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); 

Allerdings kann ich nicht populate bekommen wie erwartet arbeiten, ohne eine TypeError: Cannot read property 'ref' of undefined zu bekommen. Ich habe versucht populate('list') und populate('lists list'), aber ich bin entweder nicht richtig Dinge aufrufen oder mein Schema ist nicht richtig gebildet. Ich habe dieses Problem nicht, wenn ich einfach die Listen selbst verweisen:

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

aber ich mag neben jeder Liste die Zuweisungen Array haben. Was muss ich tun, um das gewünschte Verhalten zu erhalten?

Antwort

46

Ich fand die Antwort: populate('lists.list') funktioniert. Dank dieser Frage: Mongoose populate within an object?

+1

Hallo Freund, das funktioniert nicht für mich, was ich vermisse. Ich benutze nicht benötigt. –