2012-07-19 7 views
26

que vi en otra respuesta que a fin de incluir los campos virtuales se debe hacer como https://groups.google.com/forum/?fromgroups#!topic/mongoose-orm/HjrPAP_WXYsCampos virtuales de mangosta incluidos en JSON de forma predeterminada: schemaOptions.toJSON.virtuals = true; Todavía no incluye campos virtuales por defecto

var schemaOptions = { 
    toJSON: { 
    virtuals: true 
    } 
}; 

la que he hecho;

Ahora en el esquema:

new Schema({...}, schemaOptions); 

Pero aún así, los datos no incluye lo virtual ..: s

Pero como esto funciona:

var docsCallback = function(err, docs){ 
    var i = docs.length; 
    var nDocs = []; 
    while(i--){ 
     nDocs[i] = docs[i].toObject({virtuals: true}); 
    } 
    done(nDocs); 
} 
+0

¿El toObject '' automáticamente .populate' cualquier refs' encuentra en el objeto? Digamos un objeto 'Post' que tiene una referencia' User' en él. @ Totty.js –

Respuesta

41

acaba de intentar :

var schemaOptions = { 
    toObject: { 
     virtuals: true 
    } 
    }; 

y ¡trabajó! ;)

Ahora por defecto que utilizo:

var schemaOptions = { 
    toObject: { 
     virtuals: true 
    } 
    ,toJSON: { 
     virtuals: true 
    } 
    }; 
+0

solo acepte su propia respuesta para que la pregunta se muestre como respondida en la lista de preguntas –

+0

gracias por recordar (: –

9

Usted puede hacer de esta manera también:

docs.set('toJSON', { virtuals: true }); 
+2

gracias por su respuesta –