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


Вы можете использовать следующие методы для выполнения запроса в 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: найти документы, начинающиеся со строки

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

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' в поле position:

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

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

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

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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.