Mongodb: alanın bir dize içerip içermediği nasıl kontrol edilir


Belirli bir alanın belirli bir dize içerip içermediğini kontrol etmek için MongoDB’de aşağıdaki sözdizimini kullanabilirsiniz:

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

Aşağıdaki örnekler, bu sözdiziminin aşağıdaki belgelere sahip bir koleksiyon ekibiyle nasıl kullanılacağını gösterir:

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

Örnek 1: Alanın bir dize içerip içermediğini kontrol edin

Ekip alanında “avs” dizesini içeren bir belgenin olup olmadığını kontrol etmek için aşağıdaki kodu kullanabiliriz:

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

Bu sorgu aşağıdaki belgeyi döndürür:

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

FindOne() işlevinin, sorgu ölçütlerini karşılayan bir koleksiyondaki ilk belgeyi döndürdüğünü unutmayın.

Bu, diğer takımların da takım adlarında “avs” dizesinin bulunabileceği anlamına gelir, ancak “Mavs” takım adını içeren belge yalnızca ilk belgedir.

Örnek 2: Alanın bir dize içerip içermediğini kontrol edin (büyük/küçük harfe duyarlı değildir)

Büyük/küçük harfe duyarlı olmayan bir eşleşme yapmak için dizeden sonra i de kullanabiliriz.

Örneğin aşağıdaki sorguyu kullandığımızı varsayalım:

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

Bu sorgu aynı zamanda aşağıdaki belgeyi de döndürür:

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

Örnek 3: Alanın bir dize içerip içermediğini kontrol edin (sonuç yok)

Eğer bir alan aradığımız belirli bir dizgeyi içermiyorsa buna göre null değerini alırız.

Örneğin aşağıdaki sorguyu kullandığımızı varsayalım:

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

Bu sorgu aşağıdaki sonucu döndürür:

 null

Hiçbir belge takım adında “ricks” dizesini içermediğinden sonuç olarak null değerini alırız.

Not : $regex’in tüm belgelerini burada bulabilirsiniz.

Ek kaynaklar

Aşağıdaki eğitimlerde MongoDB’de diğer yaygın işlemlerin nasıl gerçekleştirileceği açıklanmaktadır:

MongoDB: Belirli bir alanda “boş değil” nasıl aranır
MongoDB: “Beğen” normal ifadesiyle nasıl sorgulama yapılır?
MongoDB: Koleksiyona yeni bir alan nasıl eklenir?
MongoDB: Her belgeden bir alan nasıl kaldırılır

Yorum ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir