Применение нескольких условий
На этом шаге вы научитесь применять несколько условий для фильтрации документов в коллекции MongoDB. Это позволяет выполнять более точные запросы, комбинируя несколько критериев.
Сначала откройте терминал и запустите MongoDB Shell. Эта интерактивная оболочка, где вы будете выполнять все команды базы данных.
mongosh
Оказавшись внутри оболочки mongosh, вы увидите приглашение >. Давайте переключимся на новую базу данных под названием school_database и создадим коллекцию students с некоторыми примерами данных.
use school_database
db.students.insertMany([
{ name: "Alice", age: 22, grade: "A", major: "Computer Science" },
{ name: "Bob", age: 20, grade: "B", major: "Mathematics" },
{ name: "Charlie", age: 25, grade: "A", major: "Physics" },
{ name: "David", age: 19, grade: "C", major: "Computer Science" }
]);
Эта команда вставляет четыре документа в коллекцию students. Теперь найдем студентов, которые соответствуют нескольким условиям. Мы будем использовать оператор $and для поиска студентов, которым 20 лет или больше И у которых оценка "A".
db.students.find({
$and: [{ age: { $gte: 20 } }, { grade: "A" }]
});
Этот запрос использует $gte (больше или равно) и $and, чтобы гарантировать выполнение обоих условий. Результат покажет Алису и Чарли:
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Charlie',
age: 25,
grade: 'A',
major: 'Physics'
}
]
Далее, давайте используем оператор $or для поиска документов, которые соответствуют хотя бы одному из нескольких условий. Этот запрос находит студентов, которые либо изучают "Computer Science", ЛИБО младше 21 года.
db.students.find({
$or: [{ major: "Computer Science" }, { age: { $lt: 21 } }]
});
Этот запрос использует $lt (меньше). Результат будет включать Алису и Дэвида (специальность "Computer Science") и Боба и Дэвида (младше 21 года). Поскольку Дэвид соответствует обоим условиям, он появляется один раз.
[
{
_id: ObjectId("..."),
name: 'Alice',
age: 22,
grade: 'A',
major: 'Computer Science'
},
{
_id: ObjectId("..."),
name: 'Bob',
age: 20,
grade: 'B',
major: 'Mathematics'
},
{
_id: ObjectId("..."),
name: 'David',
age: 19,
grade: 'C',
major: 'Computer Science'
}
]
На следующем шаге вы изучите другие операторы сравнения. Пока вы можете оставаться в оболочке mongosh.