MongoDB-এ find() মেথডের দ্বিতীয় প্যারামিটারে প্রজেকশন অবজেক্ট দিয়ে শুধু নির্দিষ্ট ফিল্ড বের করা যায়। 1 বা true মানে ইনক্লুড, 0 বা false মানে এক্সক্লুড।
উদাহরণ
কয়েকটি ডকুমেন্ট তৈরি করুন:
> db.querySelectDemo.insertOne({ UserId: 100, UserName: "Chris", UserAge: 25 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90eb478f00858fb12e90e") }
> db.querySelectDemo.insertOne({ UserId: 101, UserName: "Robert", UserAge: 26 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90ec578f00858fb12e90f") }
> db.querySelectDemo.insertOne({ UserId: 103, UserName: "David", UserAge: 27 });
{ "acknowledged" : true, "insertedId" : ObjectId("5ce90ed478f00858fb12e910") }
সকল ডকুমেন্ট দেখুন:
> db.querySelectDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5ce90eb478f00858fb12e90e"), "UserId" : 100, "UserName" : "Chris", "UserAge" : 25 }
{ "_id" : ObjectId("5ce90ec578f00858fb12e90f"), "UserId" : 101, "UserName" : "Robert", "UserAge" : 26 }
{ "_id" : ObjectId("5ce90ed478f00858fb12e910"), "UserId" : 103, "UserName" : "David", "UserAge" : 27 }
শুধু UserName ফিল্ড বের করা (_id বাদ)
> db.querySelectDemo.find({}, { _id: 0, UserName: true });
আউটপুট:
{ "UserName" : "Chris" }
{ "UserName" : "Robert" }
{ "UserName" : "David" }
ব্যাখ্যা:
{}— ফিল্টার (সব ডকুমেন্ট)।{ _id: 0, UserName: true }—_idবাদ (0),UserNameইনক্লুড (true/1)।_idডিফল্টভাবে ইনক্লুড থাকে, বাদ দিতে স্পষ্ট0দিতে হয়।
নियम: একই ক্যোয়ারিতে 1 এবং 0 মিক্স করা যায় না ( _id বাদে)। অর্থাৎ হয় সব ইনক্লুড করবেন বা সব এক্সক্লুড করবেন।
এগ্রিগেশন বিকল্প: { $project: { _id: 0, UserName: 1 } } — আরও শক্তিশালী, এক্সপ্রেশন ব্যবহার করা যায়।