Mongodb- စာကြောင်းတစ်ကြောင်းရဲ့အရှည်ကို ဘယ်လိုရှာမလဲ။


MongoDB တွင် string တစ်ခု၏ အရှည်ကို ရှာဖွေရန် အောက်ပါနည်းလမ်းများကို အသုံးပြုနိုင်ပြီး queries တွင် ထို string length ကို အသုံးပြုနိုင်သည်။

နည်းလမ်း 1- ကွင်းဆက်၏အရှည်ကိုရှာပါ။

 db.myCollection.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

နည်းလမ်း 2- သတ်မှတ်ထားသော အရှည်ထက် ပိုကြီးသော စာရွက်စာတမ်းများကို ရှာပါ။

 db.myCollection.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

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

 db.teams.insertOne({name: " Dallas Mavs ", points: 31})
db.teams.insertOne({name: " San Antonio Spurs ", points: 22})
db.teams.insertOne({name: " Houston Rockets ", points: 19})
db.teams.insertOne({name: " Boston Celtics ", points: 26})
db.teams.insertOne({name: " Cleveland Cavs ", points: 33})

ဥပမာ 1- ကြိုးတစ်ချောင်း၏ အရှည်ကို ရှာဖွေခြင်း။

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

 db.teams.aggregate([
  { $project : {
        "name": 1,
        "length": { $strLenCP : " $name " }
  }}
])

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

 { _id: ObjectId("62014eff4cb04b772fd7a93d"),
  name: 'Dallas Mavs',
  length: 11 }
{ _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  length: 17 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  length: 15 }
{ _id: ObjectId("62014eff4cb04b772fd7a940"),
  name: 'Boston Celtics',
  length: 14 }
{ _id: ObjectId("62014eff4cb04b772fd7a941"),
  name: 'Cleveland Cavs',
  length: 14 }

အရှည်တန်ဖိုးသည် “ အမည်” ကော်လံရှိ စာကြောင်း၏အရှည်ကို ပြသသည်။

ဥပမာအားဖြင့်:

  • “ Dallas Mavs” ကွင်းဆက်၏အရှည်မှာ 11 ဖြစ်သည်။
  • ‘San Antonio Spurs’ ကွင်းဆက်၏ အရှည်မှာ 17 ဖြစ်သည်။

နောက် … ပြီးတော့။

အလျားသည် လွတ်နေသောနေရာများကိုလည်း ရေတွက်ကြောင်း သတိပြုပါ။

ဥပမာ 2- သတ်မှတ်ထားသော အရှည်ထက် ပိုကြီးသော စာရွက်စာတမ်းများကို ရှာပါ။

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

 db.teams.find({ 
    "name": { $exists : true },
    $expr : { $gt : [ { $strLenCP : " $name " }, 14 ] } 
})

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

 { _id: ObjectId("62014eff4cb04b772fd7a93e"),
  name: 'San Antonio Spurs',
  points: 22 }
{ _id: ObjectId("62014eff4cb04b772fd7a93f"),
  name: 'Houston Rockets',
  points: 19 }

ပြန်လာသောအဖွဲ့နှစ်ဖွဲ့တည်းမှာ “ အမည်” အကွက်သည် 14 ထက်ကြီးနေသူများကို သတိပြုပါ။

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

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

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

MongoDB- string တစ်ခုကို array ၏ substrings အဖြစ်သို့ ခွဲနည်း
MongoDB- အကွက်နှစ်ခု၏ စာကြောင်းများကို ပေါင်းစပ်နည်း
MongoDB- စာကြောင်းများ အစားထိုးနည်း

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

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