кодесурса
«MongoDB

Оператор запроса оценки MongoDB - $ regex

script1adsense2code
script1adsense3code

Описание

Регулярное выражение является важным способом задания шаблона для сложного поиска. Оператор MongoDB $ regex предоставляет такой способ поиска строки после сопоставления с указанным шаблоном.

В MongoDB сопоставление с шаблоном можно выполнить с помощью объектов регулярного выражения или оператора $ regex.

Имя нашей базы данных - «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 - $ regex

Если мы хотим выбрать все документы из коллекции «студент», которые удовлетворяют условию -

Имя f_name должно начинаться с буквы "P"

можно использовать следующую команду mongodb:

>db.student.find( { f_name: { $regex: 'P.*'} } ).pretty();

Примечание. Метод find () отображает документы в неструктурированном формате, но для отображения результатов в отформатированном виде можно использовать метод pretty ().

SQL эквивалентная команда

SELECT * 
FROM student 
WHERE f_name LIKE 'P%';

Выход:

 {
        "_id": ObjectId ("527b3cc65ceafed9b2254a95"),
        "f_name": "Paul",
        "секс": "мужской",
        "класс": "VII",
        «возраст»: 13,
        "grd_point": 29,5904
}
{
        "_id": ObjectId ("527b3cc65ceafed9b2254a98"),
        "f_name": "Питер",
        "секс": "мужской",
        "класс": "VI",
        «возраст»: 11,
        "grd_point": 31,5201
}

Если мы напишем вышеприведенный оператор mongodb, как показано ниже, выходные данные не будут доступны.

>db.student.find( { f_name: { $regex: 'p.*'} } ).pretty();

Потому что никакое имя f_name не начинается с буквы 'p'. В этом случае, чтобы избежать чувствительности к регистру, мы можем написать приведенное выше утверждение следующим образом. Вот пример -

>db.student.find( { f_name: { $regex: 'p.*', $options: 'i' } } ).pretty();

Опция «$ option: i» используется, чтобы избежать чувствительности к регистру.

Вышеприведенное утверждение можно переписать, не используя $ regex, но используя объекты регулярного выражения. Вот команды -

>db.student.find( { f_name: /p/i } ).pretty();
>db.student.find( { f_name: /P/ } ).pretty();
>db.student.find( { f_name: /^p/i } ).pretty();

Предыдущая: $ mod
Далее: $ где

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code