[英]Mongoose - persistent `virtual` field?
好的,我有節點作為后端,它具有以下Mongoose模型:
var SomeSchema = new Schema({
name: {type: String, required: true},
iplanned: {type: String, default:60}
});
SomeSchema.virtual('planned')
.get(function () {
return parseInt(this.iplanned / 60, 10) + ' mins';
})
.set(function (val) {
this.iplanned = parseInt(val, 10) * 60;
});
someModel = mongoose.model('Some', SomeSchema);
到目前為止,從node.js的角度來看,這是一件好事,我可以使用記錄並按我喜歡的方式訪問此planned
字段。
以下是通過http提供此列表的簡單響應者:
exports.list = function (req, res) {
someModel.find(function (err, deeds) {
return res.send(deeds);
});
});
這就是問題所在- planned
的虛擬字段未包含在每個記錄中(嗯,這是可以理解的,有點類似)。 有什么方法可以將我的虛擬字段注入每條記錄嗎? 或者我也必須在前端進行virtual
轉換? (是的,我知道那里有Meteor.js,在這里嘗試不使用它)。
在您的模式中,您應該重新定義toJSON()方法:
SomeSchema.methods.toJSON = function () {
var obj = this.toObject();
obj.planned = this.planned;
return obj;
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.