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

MongoDB-এ $in কোয়ারি একাধিক সিঙ্গল সার্চের চেয়ে দ্রুত কিনা?

হ্যাঁ, MongoDB-এ $in একাধিক সিঙ্গল find() কোয়ারির চেয়ে দ্রুত। একটি কালেকশন তৈরি করুন:

> db.demo653.insertOne({subject:"MySQL"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea04b274deddd72997713c0") }
> db.demo653.insertOne({subject:"MongoDB"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea04b304deddd72997713c1") }
> db.demo653.insertOne({subject:"Java"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea04b354deddd72997713c2") }
> db.demo653.insertOne({subject:"C"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea04b384deddd72997713c3") }
> db.demo653.insertOne({subject:"C++"});
{ "acknowledged" : true, "insertedId" : ObjectId("5ea04b3b4deddd72997713c4") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo653.find();

আউটপুট:

$in ব্যবহার করে "MySQL", "C++", "C" একসাথে সার্চ করুন:

> db.demo653.find({subject:{$in:["MySQL","C++","C"]}});

আউটপুট:

ব্যাখ্যা: $in একসাথে একাধিক মান চেক করে, ডাটাবেস ইঞ্জিন একবার ইন্ডেক্স ট্রাভার্স করে সব মান খুঁজে বের করে। আলাদা আলাদা find() কল করলে নেটওয়ার্ক রাউন্ডট্রিপ এবং কোয়ারি প্ল্যানিং ওভারহেড বেড়ে যায়। বড় ইন অ্যারে (1000+) পারফরম্যান্স কমাতে পারে, সেক্ষেত্রে অল্টারনেটিভ বিবেচনা করুন।

  1. MongoDB-এ নির্দিষ্ট ফিল্ড দিয়ে সার্চ করা

  2. MongoDB-এ findOne()-এ রেগেক্স ব্যবহার করা

  3. MongoDB-এ $in কোয়ারি একাধিক সিঙ্গল সার্চের চেয়ে দ্রুত কিনা?

  4. MongoDB-এ একাধিক আটোমিক আপডেট (update() with $set, multi: true)