Я пытаюсь получить всю информацию от конкретного пользователя. Я уже могу заполнить коллекции, которые в нем содержатся, но я не могу заполнить очень важный атрибут в этих коллекциях, пользователя. У меня есть следующий код, который перепечатывает модели и код, который я уже сделал для запроса. Я также представляю результат того, что я могу получить, и пример того, чего я хочу. Спасибо за помощь.
У меня есть следующие шаблоны в Mongoose:
const schema = new Schema(
{
.....
nameEvent:
{
type: String,
required: true
},
owner:
{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
invited:
[{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}],
participants:
[{
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}]
});
module.exports = mongoose.model('Meeting', schema);
И
const schema = new Schema(
{
name:
{
type: String,
required: true
},
...
photoPath:
{
type: String,
required: true
},
qrcodePath:
{
type: String,
required: false
},
receiveInvites:
{
type: Boolean,
required: true
},
invited:
[{
type: mongoose.Schema.Types.ObjectId,
ref: 'Meeting'
}],
participating:
[{
type: mongoose.Schema.Types.ObjectId,
ref: 'Meeting'
}],
owned:
[{
type: mongoose.Schema.Types.ObjectId,
ref: 'Meeting'
}]
});
module.exports = mongoose.model('User', schema);
Теперь я хочу загрузить всю пользовательскую информацию и заполнить некоторые поля, которые мне нужны.
Когда я запускаю следующий код:
exports.getByid = async(id) =>
{
const res = await User.findById(id, '_id name photoPath invited participating owned friends')
.populate('invited', 'nameEvent owner date time numberPlayer participants')
.populate('participating', 'nameEvent owner date time numberPlayer participants')
.populate('owned', 'nameEvent owner date time numberPlayer participants');
return res;
}
Я получаю следующий JSON:
"result": {
"invited": [],
"participating": [
{
"participants": [
"5c8a9e46ba60372df4483d2f"
],
"_id": "5c8a9e5dba60372df4483d30",
"nameEvent": "terças",
"numberPlayer": 10,
"date": "19/03/2019",
"time": "20:00",
"owner": "5c8a9e46ba60372df4483d2f"
},
{
"participants": [
"5c8a9e46ba60372df4483d2f"
],
"_id": "5c8aad5eba60372df4483d34",
"nameEvent": "quintas",
"numberPlayer": 3,
"date": "21/03/2019",
"time": "15:00",
"owner": "5c8a9e46ba60372df4483d2f"
}
], ....
}
Но я хочу больше информации о владельце пользователя (имя и фотопатия).
Как мне заполнить эти дополнительные поля?
Вот что я ищу:
{
"participants": [
"5c8a9e46ba60372df4483d2f"
],
"_id": "5c8aad5eba60372df4483d34",
"nameEvent": "quintas",
"numberPlayer": 3,
"date": "21/03/2019",
"time": "15:00",
"owner": {
"id":"5c8a9e46ba60372df4483d2f",
"name":"name User",
"photoPath": "photoPath.jpg"
}
}