Od $in
nie jest obsługiwane w operacji agregującej dla tablicy, alternatywą byłoby użycie $setIsSubset
. Więcej informacji na ten temat można znaleźć pod tym linkiem. Zapytanie zbiorcze wyglądałoby teraz tak:
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
To zapytanie zwróci tylko elementy, które mają [x]
jako podzbiór tablicy w user.accounts
.