Mongodb: bir koleksiyondaki maksimum değer nasıl bulunur?
MongoDB’de bir alanın maksimum değerini bulmak için aşağıdaki yöntemleri kullanabilirsiniz:
Yöntem 1: Maksimum değeri içeren bir belge döndür
db.teams.find().sort({" field ": -1 }).limit( 1 )
Bu kod parçası, koleksiyondaki tüm belgeleri belirli bir alana göre azalan sırada sıralar ve ardından yalnızca ilk belgeyi döndürür.
Yöntem 2: Yalnızca maksimum değeri döndür
db.teams.find().sort({" field ": -1 }).limit( 1 ).toArray().map(function(u){ return u.field})
Aşağıdaki örnekler, her yöntemin 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: Maksimum değer içeren bir belgeyi döndürün
“Puan” alanındaki maksimum değeri içeren belgeyi döndürmek için aşağıdaki kodu kullanabiliriz:
db.teams.find().sort({" points ": -1 }).limit( 1 )
Bu sorgu aşağıdaki belgeyi döndürür:
{ _id: ObjectId("618285361a42e92ac9ccd2c6"), team: 'Cavs', position: 'Guard', points: 33 }
Bu belge tüm belgeler arasında “puan” alanında en yüksek değeri (33) içerdiği için döndürülmüştür.
Örnek 2: Yalnızca maksimum değeri döndür
Tüm belgelerde yalnızca “puan” alanındaki maksimum değeri döndürmek için aşağıdaki kodu kullanabiliriz:
db.teams.find().sort({" points ": -1 }).limit( 1 ).toArray().map(function(u){ return u.points})
Bu sorgu aşağıdaki sonucu döndürür:
[33]
Maksimum değeri içeren belgenin tamamı yerine yalnızca maksimum değerin (33) döndürüldüğünü unutmayın.
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: Nasıl gruplandırılır ve sayılır?
MongoDB: Birden fazla alana göre nasıl gruplandırılır
MongoDB: Alanın bir dize içerip içermediği nasıl kontrol edilir