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