gpt4 book ai didi

node.js - 如何创建列出子文档长度的 Mongoose 虚拟字段?

转载 作者:IT老高 更新时间:2023-10-28 12:32:17 26 4
gpt4 key购买 nike

我有一个 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);
}
});
};

这旨在用于列出所有项目但不需要单个任务(以 100 为单位)的导航元素。这很好用,但现在我需要在导航中包含任务数的计数,所以我将它添加到我的模型中:

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: Cannot read property 'length' of undefined

最佳答案

因为您排除了 tasks,所以虚拟属性无法检查属性的 length(因为它没有定义)。

要么包含 tasks,要么包含长度作为架构的预计算值。您可以在字段上使用 $inc 来更改长度,因为新项目被添加到任务数组中(或者直接设置它)。

关于node.js - 如何创建列出子文档长度的 Mongoose 虚拟字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21247449/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com