MongoDB শেলে জাভাস্ক্রিপ্ট ভেরিয়েবল (var, let, const) ব্যবহার করে ডাইনামিক কোয়ারী লিখা যায়। এটি পুনরাবৃত্তি কমাতে এবং কোড পঠনযোগ্য বানাতে সাহায্য করে।
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo107.insertOne({"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b19fd5fd66da214471") }
> db.demo107.insertOne({"Name":"Bob"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b49fd5fd66da214472") }
> db.demo107.insertOne({"Name":"David"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2ee1b89fd5fd66da214473") }
সব ডকুমেন্ট দেখানো
>> db.demo107.find();
আউটপুট:
{ "_id" : ObjectId("5e2ee1b19fd5fd66da214471"), "Name" : "Chris" }
{ "_id" : ObjectId("5e2ee1b49fd5fd66da214472"), "Name" : "Bob" }
{ "_id" : ObjectId("5e2ee1b89fd5fd66da214473"), "Name" : "David" }
ভেরিয়েবল ব্যবহার করে কোয়ারী
> var firstName = "Bob";
> db.demo107.find({"Name": firstName});
ফলাফল
{ "_id" : ObjectId("5e2ee1b49fd5fd66da214472"), "Name" : "Bob" }
ব্যাখ্যা: var firstName = "Bob" দিয়ে ভেরিয়েবল ডিক্লেয়ার করা হয়েছে, তারপর কোয়ারীতে firstName ব্যবহার করা হয়েছে।
আধুনিক জাভাস্ক্রিপ্ট (ES6+) ব্যবহার:
const firstName = "Bob";
const query = { Name: firstName };
const results = db.demo107.find(query).toArray();
printjson(results);
অতিরিক্ত উদাহরণ:
- অ্যারে ভেরিয়েবল:
var names = ["Chris", "Bob"]; db.demo107.find({Name: {$in: names}}) - অবজেক্ট ভেরিয়েবল:
var filter = {Name: "David", Age: {$gt: 20}}; db.demo107.find(filter) - রেগুলার এক্সপ্রেশন ভেরিয়েবল:
var pattern = /^Ch/; db.demo107.find({Name: pattern})
বেস্ট প্র্যাকটিস:
varবদলেconst(কনস্ট্যান্ট) বাlet(রি-অ্যাসাইনেবল) ব্যবহার করুন- কোয়ারী অবজেক্ট আলাদা ভেরিয়েবলে রাখলে ডিবাগিং সহজ হয়
- বড় কোয়ারীতে ভেরিয়েবল ব্যবহার করে কোড মডুলার রাখুন
নোট: MongoDB শেল (mongosh) এখন ES6+ ফুল সাপোর্ট করে। পুরানো mongo শেলে শুধু ES5 সাপোর্ট ছিল।