Mangosta: poblar sin referencia en el padre

En mi aplicación node.js + mongoose tengo un esquema padre y otro hijo que tienen referencias entre sí:

var PersonSchema = new Schema({ name : String , age : Number , stories : [{ type: Schema.ObjectId, ref: 'Story' }] }); var StorySchema = new Schema({ _creator : { type: Schema.ObjectId, ref: 'Person' } , title : String , fans : [{ type: Schema.ObjectId, ref: 'Person' }] }); 

Ahora puedo rellenar todas las historias cuando busco a una persona por:

 Person.findOne({ name: "some name"}).populate('stories').exec(...); 

Recientemente, reconocí que un conjunto cada vez mayor como historias en persona ralentiza el rendimiento de enormes arreglos. Así que quiero cambiar eso, porque en mi caso la matriz está creciendo muy rápido y se vuelve enorme. Mi solución parecía ser fácil. Cambié el esquema de persona a

 var PersonSchema = new Schema({ name : String , age : Number }); 

Que solo el StorySchema tiene la ref.

Ahora la pregunta: ¿Hay alguna manera o solución para poblar las historias en mi persona?

Siempre puedes hacer:

 var Script = mongoose.model('Script'); Person.findOne({ name: "some name" }, function(err, person) { Script.find({ _creator: person._id }, function(err, scripts) { person.scripts = scripts; ... }) }) 

Espero que pueda ayudar.

Eche un vistazo a la nueva función “Rellenar virtuales”, que hará su vida más fácil