Seit $in
im Aggregatbetrieb für Arrays nicht unterstützt wird, wäre die Alternative für Sie, $setIsSubset
zu verwenden . Weitere Informationen hierzu finden Sie unter diesem Link. Die aggregierte Abfrage würde jetzt wie folgt aussehen:
db.test.aggregate([
{
$project: {
'filtered_users': {
$filter: {
input: '$users',
as: 'user',
cond: {
$setIsSubset: [['x'], '$$user.accounts']
}
}
}
}
}])
Diese Abfrage gibt nur Elemente zurück, die [x]
haben als Teilmenge des Arrays in user.accounts
.