34

仮想フィールドを含めるには、 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);
}
4

3 に答える 3

58

試したばかり:

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

そして働いた!;)

現在、デフォルトで次を使用しています。

  var schemaOptions = {
    toObject: {
      virtuals: true
    }
    ,toJSON: {
      virtuals: true
    }
  };
于 2012-07-19T09:37:42.803 に答える
13

このようにすることもできます:

docs.set('toJSON', { virtuals: true });
于 2013-02-08T06:39:11.203 に答える
0

私にとっては、 mongoose docsgetters: true記載されているように、スキーマオプションに追加した後にのみ機能しました。

var schemaOptions = {
  toObject: {
    getters: true
  },
  toJSON: {
    getters: true
  }
};
于 2018-11-15T12:44:40.617 に答える