Mongodb: jak wysyłać zapytania za pomocą wyrażenia regularnego „lubię to”


Możesz użyć następujących metod, aby wysłać zapytanie do MongoDB za pomocą wyrażenia regularnego „podobnego”:

Metoda 1: Znajdź dokumenty zawierające ciąg

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

Należy pamiętać, że i oznacza dopasowanie bez uwzględniania wielkości liter.

Metoda 2: Znajdź dokumenty zaczynające się od ciągu znaków

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

Metoda 3: Znajdź dokumenty kończące się ciągiem znaków

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

Poniższe przykłady pokazują, jak używać każdej metody w przypadku zespołu zbierającego z następującymi dokumentami:

 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 })

Przykład 1: Wyszukaj dokumenty zawierające ciąg znaków

Możemy użyć poniższego kodu, aby wyszukać wszystkie dokumenty zawierające ciąg „avs” w polu zespołu:

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

To zapytanie zwraca następujące dwa dokumenty:

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

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

Przykład 2: Znajdź dokumenty zaczynające się od ciągu znaków

Możemy użyć poniższego kodu, aby wyszukać wszystkie dokumenty rozpoczynające się od ciągu „gua” w polu pozycji:

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

To zapytanie zwraca następujące trzy dokumenty:

 { _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 }

Przykład 3: Znajdź dokumenty kończące się ciągiem znaków

Możemy użyć poniższego kodu, aby znaleźć wszystkie dokumenty zakończone ciągiem „ward” w polu pozycji:

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

To zapytanie zwraca następujący dokument:

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

Uwaga : Pełną dokumentację $regex znajdziesz tutaj .

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *