Mongodb: как делать запросы с помощью регулярного выражения «like»


Вы можете использовать следующие методы для запроса MongoDB с помощью регулярного выражения «как»:

Способ 1: найти документы, содержащие строку

 db.collection.find({ name : { $regex : /string/i }})

Обратите внимание, что i указывает на совпадение без учета регистра.

Способ 2. Найдите документы, начинающиеся со строки.

 db.collection.find({ name : { $regex : /^string/i }}) 

Способ 3. Найдите документы, заканчивающиеся строкой.

 db.collection.find({ name : { $regex : /string$/i }}) 

В следующих примерах показано, как использовать каждый метод с командой по сбору данных со следующими документами:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Пример 1. Поиск документов, содержащих строку

Мы можем использовать следующий код для поиска всех документов, содержащих строку «avs» в поле команды:

 db.teams.find({ team : { $regex : /avs/i }})

Этот запрос возвращает следующие два документа:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Пример 2. Поиск документов, начинающихся со строки

Мы можем использовать следующий код для поиска всех документов, начинающихся со строки «gua» в поле позиции:

 db.teams.find({ position : { $regex : /^gua/i }})

Этот запрос возвращает следующие три документа:

 { _id: ObjectId("618050098ffcfe76d07b1da5"),
  team: 'Mavs',
  position: 'Guard',
  points: 31 }

{ _id: ObjectId("6180504e8ffcfe76d07b1da7"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

{ _id: ObjectId("618285361a42e92ac9ccd2c6"),
  team: 'Cavs',
  position: 'Guard',
  points: 33 }

Пример 3. Поиск документов, заканчивающихся строкой

Мы можем использовать следующий код, чтобы найти все документы, которые заканчиваются строкой «ward» в поле позиции:

 db.teams.find({ position : { $regex : /ward$/i }})

Этот запрос возвращает следующий документ:

 { _id: ObjectId("618050808ffcfe76d07b1dab"),
  team: 'Warriors',
  position: 'Forward',
  points: 26 }

Примечание . Полную документацию по $regex можно найти здесь .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *