MongoDB-এ find() মেথডের দ্বিতীয় আর্গুমেন্ট হিসেবে প্রজেকশন (projection) অবজেক্ট দিয়ে নির্দিষ্ট ফিল্ড বাদ দেওয়া (exclude) বা অন্তর্ভুক্ত করা (include) যায়। ফিল্ডের মান 0 সেট করলে সেটি রেজাল্টে আসবে না।
সিনট্যাক্স
db.yourCollectionName.find(yourQuery, { yourFieldName1: 0, yourFieldName2: 0 });
উদাহরণ: কালেকশন ও ডেটা তৈরি
> db.demo567.insertOne({"Name":"Chris", Age: 21});
{ "acknowledged" : true, "insertedId" : ObjectId("5e908fa139cfeaaf0b97b57b") }
> db.demo567.insertOne({"Name":"David", Age: 23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e908fa939cfeaaf0b97b57c") }
> db.demo567.insertOne({"Name":"Bob", Age: 22});
{ "acknowledged" : true, "insertedId" : ObjectId("5e908faf39cfeaaf0b97b57d") }
> db.demo567.insertOne({"Name":"Carol", Age: 20});
{ "acknowledged" : true, "insertedId" : ObjectId("5e908fb539cfeaaf0b97b57e") }
সব ডকুমেন্ট দেখানো
> db.demo567.find();
আউটপুট:
{ "_id" : ObjectId("5e908fa139cfeaaf0b97b57b"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e908fa939cfeaaf0b97b57c"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e908faf39cfeaaf0b97b57d"), "Name" : "Bob", "Age" : 22 }
{ "_id" : ObjectId("5e908fb539cfeaaf0b97b57e"), "Name" : "Carol", "Age" : 20 }
নির্দিষ্ট ফিল্ড বাদ দিয়ে কুয়েরি (Age এবং _id বাদ)
> db.demo567.find({ Name: { $in: ["Chris", "Bob"] } }, { Age: 0, _id: 0 });
আউটপুট
{ "Name" : "Chris" }
{ "Name" : "Bob" }
মূল পয়েন্টসমূহ
- Inclusion (1): শুধু নির্দিষ্ট ফিল্ডগুলো রিটার্ন করতে
{ field1: 1, field2: 1 }ব্যবহার করুন।_idডিফল্টে ১ থাকে, বাদ দিতে_id: 0লিখতে হয়। - Exclusion (0): নির্দিষ্ট ফিল্ড বাদ দিতে
{ field1: 0, field2: 0 }ব্যবহার করুন। - মিক্স করা যায় না: একই কুয়েরিতে inclusion (1) এবং exclusion (0) মিক্স করা যায় না (সिर्फ
_id: 0ব্যতীত)। - নেস্টেড ফিল্ড বাদ দিতে ডট নোটেশন:
{ "address.city": 0 }। - পারফরম্যান্স: শুধু প্রয়োজনীয় ফিল্ড রিকোয়েস্ট করলে নেটওয়ার্ক ও মেমরি বাঁচায়।