Nod*_*aut 5 mongoose mongodb node.js
我有一个node.js REST api路由,它将项目对象作为json减去任务返回:
exports.list = function(req, res) {
return Project.find(null,'-tasks',null,function(err, projects) {
if (!err) {
return res.json(projects);
} else {
return res.send(err);
}
});
};
Run Code Online (Sandbox Code Playgroud)
这旨在用于列出所有项目但不需要单个任务(100s中的编号)的导航元素.这很好但现在我需要在导航中包含任务数量的计数,所以我将其添加到我的模型中:
var ProjectSchema = Schema({
name : String,
tasks : [{
name : String,
state : String }]
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true }
});
ProjectSchema.virtual("taskCount").get(function(){
return this.tasks.length;
});
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误:TypeError:无法读取未定义的属性"length"
因为您排除了tasks,所以虚拟属性无法检查该length属性的 (因为它未定义)。
包含tasks,或包含长度作为架构的预先计算值。$inc当新项目添加到任务数组中时,您可以仅使用该字段来更改长度(或者直接设置它)。
| 归档时间: |
|
| 查看次数: |
1451 次 |
| 最近记录: |