Latest web development tutorials
×

MongoDB курс

MongoDB курс NoSQL Краткое введение MongoDB Краткое введение Window устанавливать MongoDB Linux устанавливать MongoDB MongoDB Интерпретация Концепции MongoDB подключение MongoDB Создание базы данных MongoDB Удалить базу данных MongoDB Вставить документ MongoDB Обновление документации MongoDB Удаление документов MongoDB документ Запрос MongoDB Условный оператор MongoDB $type операторы MongoDB Limit & Skip MongoDB последовательность MongoDB индекс MongoDB агрегирование MongoDB копия MongoDB Ломтики MongoDB Резервное копирование и восстановление MongoDB монитор MongoDB Java MongoDB PHP распространение MongoDB PHP MongoDB PHP7

MongoDB Расширенный учебник

MongoDB отношения MongoDB ссылки на базы данных MongoDB Индекс покрытия запроса MongoDB анализ запросов MongoDB атомарные операции MongoDB Расширенный индексации MongoDB ограничения индекса MongoDB ObjectId MongoDB Map Reduce MongoDB Полнотекстовый поиск MongoDB Регулярные выражения MongoDB Инструменты управления MongoDB GridFS MongoDB Фиксированный набор MongoDB Автоматический рост

MongoDB регулярное выражение

Регулярные выражения используются для описания использования одной строки, в соответствии с серией синтаксической строки правил соответствия.

Многие языки программирования поддерживают использование регулярных выражений для операций со строками.

MongoDB использует $ оператор регулярных выражений , чтобы установить строку , соответствующую регулярному выражению.

MongoDB использует PCRE (Perl Compatible Regular Expression) в качестве языка регулярных выражений.

В отличие от полнотекстового поиска, мы используем регулярное выражение не нужно делать какие-либо конфигурации.

Рассмотрим следующий документ структуру набора сообщений, документ содержит содержание статьи и этикетки:

{
   "post_text": "enjoy the mongodb articles on tutorialspoint",
   "tags": [
      "mongodb",
      "tutorialspoint"
   ]
}

Использование регулярных выражений

Следующие команды используют регулярные выражения для поиска статья содержит w3cschool.cc строки:

>db.posts.find({post_text:{$regex:"w3cschool.cc"}})

Приведенный выше запрос также можно записать в виде:

>db.posts.find({post_text:/w3cschool.cc/})

Независимый от регистра регулярные выражения

Если вам нужно извлечь не чувствительны к регистру, мы можем установить $ варианты, как $ я.

Следующая команда найдет регистрозависимую строку w3cschool.cc:

>db.posts.find({post_text:{$regex:"w3cschool.cc",$options:"$i"}})

Коллекция будет возвращать все данные, содержащие строку w3cschool.cc не чувствителен к регистру:

{
   "_id" : ObjectId("53493d37d852429c10000004"),
   "post_text" : "hey! this is my post on  W3Cschool.cc", 
   "tags" : [ "tutorialspoint" ]
} 

Элементы массива с использованием регулярных выражений

Мы также можем использовать регулярные выражения в поле массива для поиска контента. Это полезно в реализации этикетке, если вам нужно найти ярлык содержит данные (учебник или обучающие программы или tutorialpoint или tutorialphp) учебник в начале, вы можете использовать следующий код:

>db.posts.find({tags:{$regex:"tutorial"}})

Оптимизация регулярных выражений для запроса

  • Если поле индекс документа задан, то использование индекса по сравнению с регулярным выражением, соответствующим, чтобы найти все данные запросы быстрее.

  • Если регулярное выражение является выражением префикс, все данные соответствия будут указаны префикс строки для запуска. Например: Если регулярное выражение ^ репетит, репетит запрос будет выглядеть на начало строки.

Существует использование регулярных выражений Есть две точки , чтобы отметить:

Регулярные выражения с помощью переменных. Обязательно используйте комбинацию строки Eval будет преобразовывать после того, как не может быть непосредственно переданы выражения конкатенации. В противном случае нет никакого сообщения об ошибке, но результат пуст! Примерами могут служить следующие:

var name=eval("/" + 变量值key +"/i"); 

Ниже приводится нечеткое запрос содержит название ключевого слова не чувствительны к регистру:

title:eval("/"+title+"/i")    // 等同于 title:{$regex:title,$Option:"$i"}