Mongodb: sorgularda "eşit değil" nasıl kullanılır?
Bir alanın belirli bir değere eşit olmadığı belgeleri bulmak için MongoDB’de $ne operatörünü (“eşit değil” anlamına gelir) kullanabilirsiniz.
Bu operatör aşağıdaki temel sözdizimini kullanır:
db.myCollection.find({' team ': { $ne : " Mavs "}})
Bu özel örnek, ekip alanının “Mavs” değerine eşit olmadığı myCollection adlı koleksiyondaki tüm belgeleri arar.
Ayrıca $nin operatörünü (“içinde değil” anlamına gelir) bir alanın listedeki herhangi bir değere eşit olmadığı belgeleri bulmak için de kullanabilirsiniz.
Bu operatör aşağıdaki temel sözdizimini kullanır:
db.myCollection.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})
Bu özel örnek, myCollection adlı koleksiyondaki takım alanının “Mavs”, “Cavs” veya “Spurs” ile eşit olmadığı tüm belgeleri arar.
Aşağıdaki örnekler, aşağıdaki belgelere sahip bir toplama ekibiyle her yöntemin pratikte nasıl kullanılacağını gösterir:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12}) db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})
Örnek 1: “Farklı” sorgusu
Aşağıdaki kod, “ekip” alanının “Mavs” ile eşit olmadığı ekipler koleksiyonundaki tüm belgelerin nasıl bulunacağını gösterir:
db.teams.find({' team ': { $ne : " Mavs "}})
Bu sorgu aşağıdaki belgeleri döndürür:
{ _id: ObjectId("6203ec0e1e95a9885e1e7658"), team: 'Cavs', points: 23, rebounds: 9 } { _id: ObjectId("6203ec0e1e95a9885e1e7656"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("6203ec0e1e95a9885e1e7655"), team: 'Spurs', points: 35, rebounds: 12 } { _id: ObjectId("6203ec0e1e95a9885e1e7657"), team: 'Warriors', points: 25, rebounds: 5 }
Ekipler koleksiyonundaki her belgenin, ekip alanının “Mavs” değerine eşit olmadığı durumlarda döndürüldüğünü unutmayın.
Not : $ne operatörü büyük/küçük harfe duyarlıdır.
Örnek 2: “İçinde Değil” sorgusu
Aşağıdaki kod, takım alanının “Mavs”, “Cavs” veya “Spurs” ile eşit olmadığı takım koleksiyonundaki tüm belgelerin nasıl bulunacağını gösterir:
db.teams.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})
Bu sorgu aşağıdaki belgeleri döndürür:
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"), team: 'Rockets', points: 20, rebounds: 7 } { _id: ObjectId("6203ec0e1e95a9885e1e7657"), team: 'Warriors', points: 25, rebounds: 5 }
Takım alanı “Mavs”, “Cavs” veya “Spurs”a eşit olmadığında takım koleksiyonundaki her belgenin döndürüldüğünü unutmayın.
Not #1 : $ne işlevine ilişkin tüm belgeleri burada bulabilirsiniz.
Not #2 : $nin işlevine ilişkin tüm belgeleri 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: Alanın bir dize içerip içermediği nasıl kontrol edilir
MongoDB: Belirli bir alanda “boş değil” nasıl aranır
MongoDB: Dizeler nasıl değiştirilir?