Mongodb: “deği̇l” sorgusu nasıl kullanılır?
Belirli bir alanın değerinin belirli bir değerler listesinde olmadığı tüm belgeleri bulmak için aşağıdaki sözdizimini kullanabilirsiniz:
db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}})
Bu özel sorgu, alan 1’in değerinin değer1, değer2 veya değer3’e eşit olmadığı tüm belgeleri arar.
Aşağıdaki örnekler bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir.
Örnek 1: Değer içeren “NOT IN” sorgusu
Aşağıdaki belgelere sahip bir tahsilat ekibimiz olduğunu varsayalım:
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 })
“Takım” alanının “Roketler” değerine eşit olmadığı tüm belgeleri bulmak için aşağıdaki kodu kullanabiliriz:
db.teams.find({team: { $nin : [" Rockets "]}})
Bu sorgu aşağıdaki belgeleri döndürür:
{ _id: ObjectId("619527e467d6742f66749b72"), team: 'Cavs', position: 'Guard', points: 33 } { _id: ObjectId("619527e467d6742f66749b6e"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("619527e467d6742f66749b6f"), team: 'Mavs', position: 'Guard', points: 22 }
Döndürülen belgelerin yalnızca “ekip” alanının “Roketler”e eşit olmadığı belgeler olduğunu unutmayın.
Örnek 2: Değerler listesiyle “NON IN” sorgusu
Aşağıdaki belgelere sahip bir tahsilat ekibimiz olduğunu varsayalım:
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 })
“Team” alanının “Rockets” veya “Cavs” değerine eşit olmadığı tüm belgeleri bulmak için aşağıdaki kodu kullanabiliriz:
db.teams.find({team: { $nin : [" Rockets ", " Cavs "]}})
Bu sorgu aşağıdaki belgeleri döndürür:
{ _id: ObjectId("619527e467d6742f66749b6e"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("619527e467d6742f66749b6f"), team: 'Mavs', position: 'Guard', points: 22 }
Geri gönderilen belgelerin yalnızca “takım” alanının “Rockets” veya “Cavs” ile aynı olmadığı belgeler olduğunu unutmayın.
Not : $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: “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