Условные операторы в MongoDB

В данном уроке мы рассмотрим условные операторы. Они нам помогают выбирать документы, подходящие по определенным условиям, добавляют гибкость нашим запросам.

Оператор $lt

Оператор $lt выбирает все документы, в которых заданное поле меньше переданного значения:

javascriptlet cond = {age: {$lt: 27}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 1

Получите продукты, у которых цена меньше 500.

Оператор $gt

Оператор $gt выбирает все документы, в которых заданное поле больше определенного значения:

javascriptlet cond = {age: {$gt: 26}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 2

Получите продукты, у которых цена больше 500.

Оператор $lte

Оператор выбирает все документы, в которых заданное поле меньше либо равно переданного значения:

javascriptlet cond = {age: {$lte: 27}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 3

Получите пользователей, чей возраст меньше либо равен 44.

Задание 4

Получите продукты, у которых цена меньше или равна 500.

Оператор $gte

Оператор выбирает все документы, в которых заданное поле больше либо равно определенного значения:

javascriptlet cond = {age: {$gte: 26}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 5

Получите продукты, у которых цена больше или равна 500.

Оператор $eq

Оператор $eq выбирает все документы, в которых заданное поле равно определенному значению:

javascriptlet cond = {age: {$eq: 25}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 6

Получите продукты, у которых цена равна 500.

Оператор $ne

Оператор выбирает все документы, в которых заданное поле не равно переданному значению:

javascriptlet cond = {age: {$ne: 25}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 7

Получите продукты, у которых цена не равна 500.

Оператор $in

Оператор выбирает все документы, в которых заданное поле равно одному из значений переданного массива:

javascriptlet cond = {age: {$in: [25, 26]}};
let res  = await coll.find(cond).toArray();
console.log(res);
Задание 8

Получите продукты, у которых цена равна 500, 600 или 700.

Оператор $nin

Оператор выбирает все документы, в которых заданное поле не равно значениям переданным в массиве, либо поле не существует:

javascriptlet cond = {age: {$nin: [25, 26]}};
let res  = await coll.find(cond).toArray();
Задание 9

Получите продукты, у которых цена не равна 100 или 200.

Использование с другими методами

Условные операторы также можно использовать с методами обновления коллекции или удаления документов:

javascriptlet cond = {age:  {$lte: 27}};
let data = {$set: {salary: 1000}};
await coll.updateMany(cond, data);
Задание 10

Удалите все продукты, у которых цена больше 300.

Задание 11

Удалите все продукты, у которых цена равна 100 или 200.