Ok les gars, j'ai trouvé une solution possible à ce problème. J'ai réalisé que les jointures n'existaient pas dans Mongo, c'est pourquoi vous devez d'abord interroger les identifiants de l'utilisateur avec le rôle que vous aimez, puis effectuer une autre requête dans le document de profils, quelque chose comme ceci:
const exclude: string = '-_id -created_at -gallery -wallet -MaxRequestersPerBooking -active -__v';
// Get the _ids of users with the role equal to role.
await User.find({role: role}, {_id: 1, role: 1, name: 1}, function(err, docs) {
// Map the docs into an array of just the _ids
var ids = docs.map(function(doc) { return doc._id; });
// Get the profiles whose users are in that set.
Profile.find({user: {$in: ids}}, function(err, profiles) {
// docs contains your answer
res.json({
code: 200,
profiles: profiles,
page: page
})
})
.select(exclude)
.populate({
path: 'user',
select: '-password -verified -_id -__v'
// group: { role: "$role"}
})
});