MongoDB-এ নেস্টেড অ্যারে-র ফিল্ডে $gt (Greater Than) কোয়েরি ব্যবহার
MongoDB-এ একটি ডকুমেন্টের ভেতরে নেস্টেড অ্যারে (Embedded List) থাকলে, সেটির ভেতরের ফিল্ডে রেঞ্জ বা তুলনামূলক কোয়েরি (যেমন $gt, $lt) করার জন্য ডট (.) নোটেশন ব্যবহার করা হয়।
১. কালেকশন ও নমুনা ডেটা তৈরি
> db.demo317.insertOne({
'id':101,
'details':[{'Score':78, Name:"Chris"}, {'Score':88, Name:"David"}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50e69cf8647eb59e562060") }
> db.demo317.insertOne({
'id':102,
'details':[{'Score':90, Name:"Chris"}, {'Score':91, Name:"David"}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e50e6adf8647eb59e562061") }
২. সব ডকুমেন্ট দেখানো
> db.demo317.find();
আউটপুট:
{ "_id" : ObjectId("5e50e69cf8647eb59e562060"), "id" : 101, "details" : [ { "Score" : 78, "Name" : "Chris" }, { "Score" : 88, "Name" : "David" } ] }
{ "_id" : ObjectId("5e50e6adf8647eb59e562061"), "id" : 102, "details" : [ { "Score" : 90, "Name" : "Chris" }, { "Score" : 91, "Name" : "David" } ] }
৩. $gt ব্যবহার করে Score 89-এর চেয়ে বড় রেকর্ড খোঁজা
> db.demo317.find({"details.Score" :{ "$gt" : 89 }});
ব্যাখ্যা: details.Score ডট নোটেশন ব্যবহার করে নেস্টেড অ্যারে-র Score ফিল্ডে অ্যাক্সেস করা হয়েছে। MongoDB অটোমেটিক্যালি অ্যারে-র প্রতিটি এলিমেন্ট চেক করে।
৪. ফলাফল
{ "_id" : ObjectId("5e50e6adf8647eb59e562061"), "id" : 102, "details" : [ { "Score" : 90, "Name" : "Chris" }, { "Score" : 91, "Name" : "David" } ] }
শুধু id: 102 वाले ডকুমেন্ট ফেরত এসেছে, কারণ এর details অ্যারে-র দুটি এলিমেন্টই Score 89-এর চেয়ে বড় (90 এবং 91)। প্রথম ডকুমেন্টের স্কোর 78 এবং 88 হওয়ায় এটি ফলাফলে আসেনি।