[英]How can I create a mongoose virtual field that lists the length of a subdocument?
我有一個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);
}
});
};
這旨在用於列出所有項目但不需要單個任務(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;
});
但是我收到以下錯誤:TypeError:無法讀取未定義的屬性“length”
因為您要排除tasks
,所以虛擬屬性無法檢查屬性的length
(因為它未定義)。
包括tasks
,或包括長度作為模式的預計算值。 你可以在字段上使用$inc
來更改長度,因為新項目被添加到任務數組中(或者只是直接設置它)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.