2017-09-20 13 views
0

モンゴースの初期フックに少し問題があります。モンゴースプレ初期フック

clientSchema.pre('init', function(next, doc) { 
    doc.prop = 'something'; 
    next(); 
}); 

それは正常に動作しますが、私はデシベルで見たときに、プロパティを変更する: ユーザーがデータを取得すると、私は、「書式設定」の値

はここに私のコードの例だ彼を返すようにしたいです。しかし、私は自分でデータを保存しません...

どうすれば可能ですか?

あなたのデータベースに保存されることはありませんvirtualsを、探しているかもしれないあなたの助け

答えて

1

いただきありがとうございます。

たぶん、このような何か:

clientSchema.virtual('formattedProp').get(function() { 
    var formatted 

    // Use schema properties here to create your formatted value 

    return formatted 
}) 

あなたがそのように同じようにアクセスできます。

console.log(client.formattedProp) 

はあなたがここに詳細を読むことができます: http://mongoosejs.com/docs/guide.html#virtuals

注:あなたもしたいかもしれませんがスキーマオプションに以下を追加してください:

var schema = new Schema(
    { 
    // Schema fields 
    }, 
    { 
    toObject: { 
     virtuals: true 
    }, 
    toJSON: { 
     virtuals: true 
    } 
    } 
)