Ok les gars, j'ai trouvé une solution possible à ce problème. J'ai réalisé que les jointures n'existent pas dans Mongo, c'est pourquoi vous devez d'abord interroger les identifiants des utilisateurs avec le rôle que vous souhaitez, et après cela faire une autre requête sur le document des 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"}
})
});