У меня есть следующие схемы:
let ProjectSchema = new mongoose.Schema({
title: {
type: String
},
employees: {
user: String, // ==> ObjectId of User from UserSchema
role: String,
workload: Number,
},
description: {
type: String
}
});
let UserSchema = new mongoose.Schema({
email: {
type: String,
required: true,
trim: true
},
name: {
type: String
},
projects: {
type: Array // ==> ObjectId of Project from ProjectSchema
}
});
Я хочу добиться того, чтобы пользователь получил _id
или email
, а также все данные из его проектов, например:
{
"user": {
"_id": "asdf1234",
"email": "your@email.com",
"name": "Max"
"projects": {
"title": "Project 1",
"description": "Just a text",
"employees": {
"user": "asdf1234",
"role": "developer",
"workload": 40
}
}
}
}
И я также хочу получить конкретный проект по идентификатору, и поле employee.user должно быть заполнено правильными пользовательскими данными.
Могу ли я сделать это с Mongoose populate
?Мой подход заключается в том, чтобы сначала сделать User.findOne()
, а затем проверить project.id и Project.findOne()
.