Med*_*uly 4 mongoose mongodb node.js express
我有一个产品模型,它有很多领域。其中一些专用于前端应用程序,例如:
var GameSchema = new Schema({
likes: {
type: [{
type: Schema.ObjectId,
ref: 'User'
}]
},
likes_count: {
type: Number
}
});
Run Code Online (Sandbox Code Playgroud)
我不需要likes_countDb 中的字段,但控制器只返回模型具有的字段,所以我将likes_count字段添加到 db 模型
exports.some_method = function(req, res){
var game = req.game;
game.likes_count = game.likes.length
res.json(game);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在发送请求时将额外数据添加到 db 模型中而不将它们放入 db 中?
请注意,问题不在likes_count现场本身,我有不同的模型,但重点是在 db 模型上有额外的数据。
对于那些仍然感兴趣的人,mongo_db mongoose (@robertklep) 有虚拟字段,可以用作临时数据字段,数据库中不存在
GameSchema.virtual('likes_count').get(function () {
return this.likes.length;
});
Run Code Online (Sandbox Code Playgroud)
请注意,您的模型必须具有这样的虚拟权限,以便您可以在控制器中使用它
var UserSchema = new Schema({
username: {
type: String
}
}, {
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1726 次 |
| 最近记录: |