কম্পিউটার টিউটোরিয়াল

MongoDB-এ limit() কি কোয়ারী স্পিড বাড়ায়?


না, LIMIT() ব্যবহার করলে ব্যান্ডউইথ খরচ কমে কিন্তু কোয়ারী স্পিড বাড়ে না। নিচে উদাহরণ দেওয়া হলো:

ডকুমেন্টসহ একটি কলেকশন তৈরি করা

> db.demo197.insertOne({"Name":"Chris"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afde803d395bdc21346d8") } > db.demo197.insertOne({"Name":"Bob"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afdef03d395bdc21346d9") } > db.demo197.insertOne({"Name":"David"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afdf203d395bdc21346da") } > db.demo197.insertOne({"Name":"Sam"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afdf603d395bdc21346db") } > db.demo197.insertOne({"Name":"Mike"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afdf903d395bdc21346dc") } > db.demo197.insertOne({"Name":"Carol"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afe1603d395bdc21346dd") } > db.demo197.insertOne({"Name":"John"}); {    "acknowledged" : true,    "insertedId" : ObjectId("5e3afe2003d395bdc21346de") }

find() মেথড ব্যবহার করে সব ডকুমেন্ট দেখানো

> db.demo197.find();

এটি নিচের আউটপুট তৈরি করবে:

{ "_id" : ObjectId("5e3afde803d395bdc21346d8"), "Name" : "Chris" } { "_id" : ObjectId("5e3afdef03d395bdc21346d9"), "Name" : "Bob" } { "_id" : ObjectId("5e3afdf203d395bdc21346da"), "Name" : "David" } { "_id" : ObjectId("5e3afdf603d395bdc21346db"), "Name" : "Sam" } { "_id" : ObjectId("5e3afdf903d395bdc21346dc"), "Name" : "Mike" } { "_id" : ObjectId("5e3afe1603d395bdc21346dd"), "Name" : "Carol" } { "_id" : ObjectId("5e3afe2003d395bdc21346de"), "Name" : "John" }

LIMIT() ব্যবহার করার কোয়েরি

> db.demo197.find().limit(4);

এটি নিচের আউটপুট তৈরি করবে:

{ "_id" : ObjectId("5e3afde803d395bdc21346d8"), "Name" : "Chris" } { "_id" : ObjectId("5e3afdef03d395bdc21346d9"), "Name" : "Bob" } { "_id" : ObjectId("5e3afdf203d395bdc21346da"), "Name" : "David" } { "_id" : ObjectId("5e3afdf603d395bdc21346db"), "Name" : "Sam" }

ব্যাখ্যা: limit() শুধু ফেরত দেওয়া ডকুমেন্টের সংখ্যা সীমাবদ্ধ করে, কিন্তু ডাটাবেসকে পুরো কলেকশন স্ক্যান করতে হয় (যদি ইনডেক্স না থাকে)। তাই কোয়ারী এক্সিকিউশন টাইম কমে না, শুধু নেটওয়ার্ক ট্রান্সফার এবং মেমরি ব্যবহার কমে।

  1. MongoDB-তে সাবডকুমেন্টের অ্যারে কুয়েরি

  2. MongoDB-এ _id দিয়ে গ্রুপ করে ডকুমেন্ট কাউন্ট করা

  3. MongoDB-এ কালেকশন রিনেম করা (renameCollection)

  4. MongoDB-তে $slice ব্যবহার করে ফিল্ডের রিটার্নিং ভ্যালু লিমিট করা