У меня есть бд с пользователями типа этого:
{
"_id": 1,
"name": "Carlo",
"cars": [{
"type": "sport",
"score": 10
}, {
"type": "hatchback",
"score": 5
}, {
"type": "family",
"score": 4
}, {
"type": "family",
"score": 3
}]
}
Мне нужно выбрать пользователей, у которых все типы машин имеют счет больше 5 и меньше 8. Я написал такой код:
db.bsa.find({
$and: [{
'cars.score': {
$gt: 5
}
}, {
'cars.score': {
$lt: 8
}
}]
})
Но такой запрос возвращает всех пользователей, у которых хоть одна машина имеет данный счет. Как мне вернуть только тех, у которых все машины отвечают запросу?