Оператор запроса оценки MongoDB - $ regex
Описание
Регулярное выражение является важным способом задания шаблона для сложного поиска. Оператор 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();
Новый контент: Composer: менеджер зависимостей для PHP , R программирования