J'utilise l'agrégat pour obtenir programs
d'un faculty
Tout va bien, mais le problème est que j'obtiens _id
de la faculté où je veux obtenir id
aussi bien, si je n'utilise pas l'agrégat je peux obtenir id
y _id
ce qui est bien mais quand l'agrégat ne peut pas avoir id
mais seulement _id
est dans la sortie
await Faculty.aggregate([
{
$lookup: {
from: 'programs',
localField: '_id',
foreignField: 'faculty',
as: 'programs'
},
},
]);
Modèle de faculté :
const facultySchema = new mongoose.Schema({
title: {
type: String,
required: true,
},
}, {
timestamps: true
});
facultySchema.virtual('programs', {
ref: Program.collection.collectionName,
localField: '_id',
foreignField: 'faculty'
});
facultySchema.virtual('id').get(function () {
return this._id.toHexString();
});
facultySchema.set('toJSON', {
virtuals: true,
});
Sortie
{
"_id": "63744bc780d90d5debcac013",
"title": "FSSK",
"__v": 0,
"programs": [
{
"_id": "63746ebb305a351746fc7c9e",
"title": "Communication (Doctor Of Philosophy only)",
"faculty": "63744bc780d90d5debcac013",
"__v": 0
},
{
"_id": "637474f3305a351746fc7d74",
"title": "Anthropology and Sociology",
"faculty": "63744bc780d90d5debcac013",
"__v": 0
},