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


Ви можете використовувати наступні методи для запиту MongoDB за допомогою регулярного виразу “like”:

Спосіб 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» у полі team:

 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 тут .

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *