Mongodb: jak sprawdzić, czy pole zawiera ciąg znaków


Możesz użyć następującej składni w MongoDB, aby sprawdzić, czy określone pole zawiera określony ciąg znaków:

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

Poniższe przykłady pokazują, jak używać tej składni w przypadku zespołu windykacyjnego 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: Sprawdź, czy pole zawiera ciąg znaków

Możemy użyć poniższego kodu, aby sprawdzić, czy w polu zespołu znajduje się dokument zawierający ciąg „avs”:

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

To zapytanie zwraca następujący dokument:

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

Należy pamiętać, że funkcja findOne() zwraca pierwszy dokument w kolekcji, który spełnia kryteria zapytania.

Oznacza to, że inne zespoły również mogą mieć ciąg „avs” w nazwie swojego zespołu, ale dokument zawierający nazwę zespołu „Mavs” był po prostu pierwszym.

Przykład 2: Sprawdź, czy pole zawiera ciąg znaków (wielkość liter nie ma znaczenia)

Możemy także użyć i po ciągu znaków, aby dopasować bez uwzględniania wielkości liter .

Załóżmy na przykład, że używamy następującego zapytania:

 db.teams.findOne({ team : { $regex : /AVS/i }}) 

To zapytanie zwraca również następujący dokument:

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

Przykład 3: Sprawdź, czy pole zawiera ciąg znaków (brak wyników)

Jeśli pole nie zawiera konkretnego ciągu, którego szukamy, po prostu otrzymamy odpowiednio wartość null .

Załóżmy na przykład, że używamy następującego zapytania:

 db.teams.findOne({ team : { $regex : /ricks/ }})

To zapytanie zwraca następujący wynik:

 null

Ponieważ żaden dokument nie zawiera ciągu „ricks” w nazwie zespołu, w rezultacie otrzymamy wartość null .

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

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje w MongoDB:

MongoDB: Jak wyszukać „nie null” w określonym polu
MongoDB: Jak wysyłać zapytania za pomocą wyrażenia regularnego „Lubię to”
MongoDB: Jak dodać nowe pole do kolekcji
MongoDB: Jak usunąć pole z każdego dokumentu

Dodaj komentarz

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