MongoDB Логический оператор запросов - $ и & $ not
Логический оператор - $ а
Оператор MongoDB $ and выполняет логическую операцию И над массивом из двух или более выражений и извлекает документы, которые удовлетворяют всем выражениям в массиве. Оператор $ and использует оценку короткого замыкания. Если первое выражение (например, <expression1>) оценивается как ложное, MongoDB не будет оценивать оставшиеся выражения.
Синтаксис:
{$ and: [{<exp1>}, {<exp2>}, ..., {<expN>}]}
Имя нашей базы данных - «myinfo», а имя нашей коллекции - «student». Вот коллекция ниже.
Образец коллекции "Студент"
[
{
"f_name" : "Zenny",
"sex" : "Female",
"class" : "VI",
"age" : 12,
"grd_point" : 32.6342
},
{
"f_name" : "Paul",
"sex" : "Male",
"class" : "VII",
"age" : 13,
"grd_point" : 29.5904
},
{
"f_name" : "Tom",
"sex" : "Male",
"class" : "VI",
"age" : 11,
"grd_point" : 30.1257
},
{
"f_name" : "Lassy",
"sex" : "Female",
"class" : "VIII",
"age" : 13,
"grd_point" : 28.2514
},
{
"f_name" : "Peter",
"sex" : "Male",
"class" : "VI",
"age" : 11,
"grd_point" : 31.5201
}
]
Пример логического оператора MongoDB - $ и
Если мы хотим выбрать все документы из коллекции «студент», которые удовлетворяют условию -
1. пол студента женский и
2. класс ученика VI и
3. grd_point студента больше чем равно 31
можно использовать следующую команду mongodb:
>db.student.find({$and:[{"sex":"Male"},{"grd_point":{ $gte: 31 }},{"class":"VI"}]}).pretty();
Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().
SQL эквивалентная команда
SELECT *
FROM student
WHERE sex="Male" AND grd_point>=31 AND class="VI";
Выход:
{ "_id": ObjectId ("527b3cc65ceafed9b2254a98"), "f_name": "Питер", "секс": "мужской", "класс": "VI", «возраст»: 11, "grd_point": 31,5201 }
Вышеуказанная операция AND может быть написана неявно таким образом, указав список выражений через запятую. Вот пример ниже:
db.student.find({"sex":"Male","grd_point":{ $gte: 31},"class":"VI"}).pretty();
Логический оператор - $ not
Оператор MongoDB $ not выполняет логическую операцию NOT над данным выражением и извлекает выбранные документы, которые не соответствуют выражению, и документ, который также не содержит поля, указанного в выражении.
Синтаксис:
{field: {$ not: {<expression>}}}
Пример логического оператора MongoDB - $ not
Если мы хотим выбрать все документы из коллекции «студент», которые удовлетворяют условию -
возраст ученика не менее 12 лет
можно использовать следующую команду mongodb:
>db.student.find( {"age": { $not: {$lt : 12}}}).pretty();
SQL эквивалентная команда
SELECT *
FROM student
WHERE age>=12;
Выход:
{ "_id": ObjectId ("527b3cc65ceafed9b2254a94"), "f_name": "Zenny", "секс": "женский", "класс": "VI", «возраст»: 12, "grd_point": 32,6342 } { "_id": ObjectId ("527b3cc65ceafed9b2254a95"), "f_name": "Paul", "секс": "мужской", "класс": "VII", «возраст»: 13, "grd_point": 29,5904 } { "_id": ObjectId ("527b3cc65ceafed9b2254a97"), "f_name": "Lassy", "секс": "женский", "класс": "VIII", «возраст»: 13, "grd_point": 28.2514 }
Пример логического оператора MongoDB - $ not с сопоставлением с образцом
Если мы хотим выбрать все документы из коллекции «студент», которые удовлетворяют условию -
Пол ученика не должен быть мужским.
можно использовать следующую команду mongodb:
>db.student.find( {"sex": { $not: /^M.*/}}).pretty();
SQL эквивалентная команда
SELECT *
FROM student
WHERE sex NOT LIKE 'M%';
Выход:
{ "_id": ObjectId ("527b3cc65ceafed9b2254a94"), "f_name": "Zenny", "секс": "женский", "класс": "VI", «возраст»: 12, "grd_point": 32,6342 } { "_id": ObjectId ("527b3cc65ceafed9b2254a97"), "f_name": "Lassy", "секс": "женский", "класс": "VIII", «возраст»: 13, "grd_point": 28.2514 }
Предыдущий: $ в $ нин
Далее: $ или $ nor
Новый контент: Composer: менеджер зависимостей для PHP , R программирования