Match ile nesneler belirtilen kritere göre seçilirler. Yani "where" anlamına gelir. Match kullanırken and/or gibi şeyler kullanılabilir. Ayrıca eşleştirmek için sadece eşitlik değil, gt gibi büyüklük/küçüklük karşılaştırması da yapılabilir
Örnek - match + group + sum
Designing Data Intensive Applications kitabında gösterildiği gibi şöyle yaparız. Burada gruplama yapılıyor ve gruptaki toplam bulunuyor.
db.observations.aggregate([{ $match: { family: "Sharks" } },{ $group: {_id: {year: { $year: "$observationTimestamp" },month: { $month: "$observationTimestamp" }},totalAnimals: { $sum: "$numAnimals" }} }]);
Eğer SQL kullanıyor olsaydık aynı şey şöyle yapardık
SELECT date_trunc('month', observation_timestamp) AS observation_month,SUM(num_animals) AS total_animalsFROM observationsWHERE family = 'Sharks'GROUP BY observation_month;
Örnek - or
Şöyle yaparız. Bu örnek diğerlerine benziyor. Farklı olarak sadece match için $or kullanılıyor.
db.collection.aggregate([
{
$match: {
$or: [
{
"subject.type": "Core"
},
{
"subject.type": "Elective"
}
]
}
},
{
$group: {
_id: "$subject.type",
count: {
$sum: 1
}
}
}
])
Örnek - $or + $gt
Şöyle yaparız
db.articles.aggregate( [{ $match: { $or: [{ score: { $gt: 90 } }, { author: "dave" }}] }}]);
Hiç yorum yok:
Yorum Gönder