Итак, я изучаю mongodb & mon goose, и я пытаюсь создать приложение для проектов / задач, это ProjectModel:
const projectSchema = new mongoose.Schema(
{
name: {
type: String,
required: true,
unique: true,
trim: true,
lowercase: true,
},
grp: {
type: String,
required: true,
trim: true,
lowercase: true,
},
tasks: {
type: [taskSchema],
},
createdAt: { type: Date, default: Date.now },
},
{
toObject: { virtuals: true },
toJSON: { virtuals: true },
}
);
projectSchema.virtual('tasksCount').get(function () {
return this.tasks.length;
});
И при запросе данных запускается:
getAllProjects = async (req, res) => {
try {
const query = await Project.find().select({tasks: -1});
const projects = query.;
console.log(projects);
res.status(200).send({
status: 'sucess',
data: {
projects,
},
});
} catch (error) {
res.status(400).send({
status: 'fail',
msg: `error info : ${error}`,
});
}
};
Проблема : я получаю эту ошибку: Ошибка типа: Не удается прочитать свойство 'длина' из неопределенного. Это происходит из виртуального свойства ('tasksCount'), поэтому, когда я отменяю выбор свойства ('tasks'), виртуальное свойство не может быть рассчитано, я надеюсь, что у кого-то есть способ отменить выбор 'tasks' и при этом иметь возможность отправить 'tasksCount'.