Depuis $in
n'est pas pris en charge dans l'opération d'agrégation pour le tableau, l'alternative serait que vous utilisiez $setIsSubset
. Pour plus d'informations à ce sujet, vous pouvez consulter ce lien. La requête agrégée ressemblerait maintenant à
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
Cette requête renverra uniquement les éléments qui ont [x]
en tant que sous-ensemble du tableau dans user.accounts
.