Mongodb: "boş değil" sorgusu nasıl yapılır? belirli bir alanda


MongoDB’de belirli bir alanın boş olmadığı tüm belgeleri bulmak için aşağıdaki sözdizimini kullanabilirsiniz:

 db.collection.find({" field_name ":{ $ne : null }}) 

Aşağıdaki örnekler bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir.

Örnek 1: Belirli bir alanda “boş değil” sorgusu

Aşağıdaki belgelere sahip bir tahsilat ekibimiz olduğunu varsayalım:

 db.teams.insertOne({team: " Mavs ", position: null , points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: null , points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

“Konum” alanının boş olmadığı tüm belgeleri bulmak için aşağıdaki kodu kullanabiliriz:

 db.teams.find({" position ":{ $ne : null }})

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

 { _id: ObjectId("618bf18f35d8a762d3c28717"),
  team: 'Spurs',
  position: 'Guard',
  points: 22 }

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

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

Döndürülen belgelerin yalnızca “konum” alanı boş olmayan belgeler olduğunu unutmayın.

Örnek 2: “Null değil” sorgusu (tüm belgeler bu alanı içermediğinde)

Aşağıdaki belgelere sahip bir tahsilat ekibimiz olduğunu varsayalım:

 db.teams.insertOne({team: " Mavs ", position: null , points: 31 })
db.teams.insertOne({team: " Spurs ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: null , points: 19 })
db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Koleksiyondaki ikinci belgenin bir “konum” alanına bile sahip olmadığını unutmayın.

“Konum” alanının sıfır olmadığı tüm belgeleri bulmak için aşağıdaki kodu kullanabiliriz:

 db.teams.find({" position ":{ $ne : null }})

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

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

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

İkinci belgede “pozisyon” alanı bile bulunmadığından döndürülmez.

Ayrıca “pozisyon” alanında boş değere sahip diğer iki belgenin de döndürülmediğini unutmayın.

Özet : $ne:null sözdizimini kullanarak yalnızca belirli bir alanın mevcut olduğu ve null olmayan belgeleri döndürürüz.

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: “Beğen” normal ifadesiyle nasıl sorgulama yapılır?
MongoDB: Alanın bir dize içerip içermediği nasıl kontrol edilir
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