Hey Guys, I have an array of objects in my schema
[{
users: [
{
name: 'frank',
age: 15,
email: 'frank@email.com'
},
{
name: 'daniel',
age: 18,
email: 'daniel@email.com'
},
{
name: 'george',
age: 18,
email: 'george@email.com'
}
]
},
{
users: [
{
name: 'dan',
age: 19,
email: 'dan@email.com'
},
{
name: 'steve',
age: 18,
email: 'steve@email.com'
},
{
name: 'chris',
age: 21,
email: 'chris@email.com'
}
]
}
]
I want to query all the documents with all it’s users being 18 or above. The methods I found like
{$match:{ 'entries.age': { age:{ $gte: 18}} }}
It works, but it matches all documents with atleast one user with age 18+.
[{
users: [
{
name: 'frank',
age: 15,
email: 'frank@email.com'
},
{
name: 'daniel',
age: 18,
email: 'daniel@email.com'
},
{
name: 'george',
age: 18,
email: 'george@email.com'
}
]
},
{
users: [
{
name: 'dan',
age: 19,
email: 'dan@email.com'
},
{
name: 'steve',
age: 18,
email: 'steve@email.com'
},
{
name: 'chris',
age: 21,
email: 'chris@email.com'
}
]
}
]
Instead I want the query to return only the documents where all the users are 18+
[{
users: [
{
name: 'dan',
age: 19,
email: 'dan@email.com'
},
{
name: 'steve',
age: 18,
email: 'steve@email.com'
},
{
name: 'chris',
age: 21,
email: 'chris@email.com'
}
]
}
]