@killkock

MongoDB как проверить все вхождения массива?

У меня есть бд с пользователями типа этого:
{
"_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
    }
  }]
})


Но такой запрос возвращает всех пользователей, у которых хоть одна машина имеет данный счет. Как мне вернуть только тех, у которых все машины отвечают запросу?
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы