Mongodb- အုပ်စုအလိုက် ပေါင်းနည်း


MongoDB တွင် အုပ်စုနှင့်ရေတွက်ရန် အောက်ပါအထားအသိုကိုသုံးနိုင်သည်။

 db.collection.aggregate([
    { $group : { _id : " $field_name1 ", count :{ $sum : " $field_name2 "}}}
])

field_name1 သည် သင်အုပ်စုဖွဲ့လိုသော အကွက်ဖြစ်ပြီး field_name2 သည် သင်ပေါင်းလိုသည့်အကွက်ဖြစ်သည်။

အောက်ဖော်ပြပါ ဥပမာများသည် အောက်ပါစာရွက်စာတမ်းများပါရှိသော စုစည်းမှု အဖွဲ့ နှင့်အတူ ဤအထားအသိုကို အသုံးပြုနည်းကို ပြသသည်-

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Forward ", 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 })

ဥပမာ 1- အုပ်စုအလိုက် ပေါင်းပါ။

“အနေအထား” အကွက်ဖြင့် အုပ်စုဖွဲ့ရန်နှင့် ရာထူးတစ်ခုစီအတွက် အမှတ်ပေါင်းကို ရေတွက်ရန် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်သည်။

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}}
])

၎င်းသည် အောက်ပါရလဒ်များကို ပြန်ပေးသည်-

 { _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }
{ _id: ' Center ', count: 19 }

၎င်းသည် ကျွန်ုပ်တို့အား ပြောပြသည်-

  • “ တိုက်ခိုက်သူ” အနေအထားရှိကစားသမားများသည် စုစုပေါင်း 48 မှတ်ရှိသည်။
  • “ အစောင့်” ရာထူးရှိသော ကစားသမားများသည် စုစုပေါင်း 64 မှတ်ရှိသည်။
  • “ဗဟို” အနေအထားရှိ ကစားသမားများသည် စုစုပေါင်း 19 မှတ်ရှိသည်။

ဥပမာ 2- အုပ်စုအလိုက် ပေါင်းထည့်ပါ (ထို့နောက် အမျိုးအစားခွဲပါ)

ရာထူးတစ်ခုစီအတွက် အမှတ်ပေါင်းကို ရှာဖွေရန်နှင့် ရလဒ်များကို ကြီးလိုက် ကြီးလိုက် အလိုအလျောက်စီရန် အောက်ပါကုဒ်ကို အသုံးပြုနိုင်သည်။

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count : 1}} 
])

၎င်းသည် အောက်ပါရလဒ်များကို ပြန်ပေးသည်-

 { _id: ' Center ', count: 19 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Guard ', count: 64 }

ရလဒ်များကို ကြီးလိုက်ကြီးလိုက် (အသေးဆုံးမှ အကြီးဆုံးအထိ) အမှတ်များဖြင့် စီထားသည်။

ရလဒ်များကို ကြီးစဉ်ငယ်လိုက် စီရန် -1 ကို ရေတွက်ခြင်း အငြင်းအခုံတွင် သုံးနိုင်သည်။

 db.teams.aggregate([
    { $group : { _id : " $position ", count :{ $sum : " $points "}}},
    { $sort : { count :-1}} 
])

၎င်းသည် အောက်ပါရလဒ်များကို ပြန်ပေးသည်-

 { _id: ' Guard ', count: 64 }
{ _id: ' Forward ', count: 48 }
{ _id: ' Center ', count: 19 }

ရလဒ်များကို ကြီးစဉ်ငယ်လိုက် အမှတ်များဖြင့် စီထားသည် (အကြီးဆုံးမှ အငယ်ဆုံး) ကို သတိပြုပါ။

မှတ်ချက်$group အတွက် စာရွက်စာတမ်းအပြည့်အစုံကို ဤနေရာတွင် ရှာနိုင်သည်။

ထပ်လောင်းအရင်းအမြစ်များ

အောက်ဖော်ပြပါ သင်ခန်းစာများသည် MongoDB တွင် အခြားသော ဘုံလုပ်ဆောင်ချက်များကို မည်သို့လုပ်ဆောင်ရမည်ကို ရှင်းပြသည်-

MongoDB- အကွက်တစ်ခုတွင် ကွဲပြားသောတန်ဖိုးများကို ရေတွက်နည်း
MongoDB- နယ်ပယ်များစွာဖြင့် အုပ်စုဖွဲ့နည်း
MongoDB- အုပ်စုဖွဲ့ပြီး ရေတွက်နည်း

မှတ်ချက်တစ်ခုထည့်ပါ။

သင့် email လိပ်စာကို ဖော်ပြမည် မဟုတ်ပါ။ လိုအပ်သော ကွက်လပ်များကို * ဖြင့်မှတ်သားထားသည်