Подтвердить что ты не робот

Виртуальные поля Mongoose, включенные в toJSON по умолчанию: schemaOptions.toJSON.virtuals = true; по-прежнему не включает виртуальные поля по умолчанию

В другом ответе я увидел, что для включения виртуальных полей вы должны сделать как https://groups.google.com/forum/?fromgroups#!topic/mongoose-orm/HjrPAP_WXYs

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

который я сделал;

Теперь в схеме:

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

Но тем не менее, данные не включают в себя виртуальные.: s

Но как это работает:

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

Ответ 1

Просто попробовал:

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

и работает!;)

Теперь по умолчанию я использую:

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

Ответ 2

Вы также можете сделать это:

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