кодесурса
«MongoDB

MongoDB Логический оператор запросов - $ и & $ not

script1adsense2code
script1adsense3code

Логический оператор - $ а

Оператор 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 программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code