MongoDB-এ স্ট্রিং ফরম্যাটের আইডিকে ObjectId-এ কনভার্ট করতে অ্যাগ্রিগেশন পাইপলাইনে $toObjectId অপারেটর ব্যবহার করা হয় (MongoDB 4.0+)。
কলেকশন এবং ডকুমেন্ট তৈরি
> db.demo95.insertOne({"Id":"5ab9cbe531c2ab715d42129a"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d5ef5b8903cdd865577ac") }
সব ডকুমেন্ট দেখানো
> db.demo95.find();
আউটপুট:
{ "_id" : ObjectId("5e2d5ef5b8903cdd865577ac"), "Id" : "5ab9cbe531c2ab715d42129a" }
স্ট্রিংকে ObjectId-এ কনভার্ট করার কোয়ারী
> db.demo95.aggregate([ { "$addFields": { "d" : { "$toObjectId": "$Id" } }} ])
ফলাফল
{ "_id" : ObjectId("5e2d5ef5b8903cdd865577ac"), "Id" : "5ab9cbe531c2ab715d42129a", "d" : ObjectId("5ab9cbe531c2ab715d42129a") }
ব্যাখ্যা:
$addFields- নতুন ফিল্ড যোগ করতে বা এক্সিস্টিং ফিল্ড আপডেট করতে$toObjectId- স্ট্রিংকে ObjectId-এ কনভার্ট করে (স্ট্রিংটি বৈধ ২৪-ক্যারেক্টার হেক্সाडেসিমেল হতে হবে)- নতুন ফিল্ড
dএ ObjectId টাইপে মান আসে
ব্যবহার ক্ষেত্র:
- এক্সটার্নাল সোর্স থেকে স্ট্রিং আকারে আইডি পাওয়া যায়, কিন্তু লুকআপ বা জয়েনের জন্য ObjectId দরকার
$lookupস্টেজে ফরেন ফিল্ড ObjectId হলে কিন্তু লোকাল ফিল্ড স্ট্রিং হলে
সংশ্লিষ্ট অপারেটরসমূহ: $toString (ObjectId থেকে স্ট্রিং), $convert (জেনেরিক টাইপ কনভার্সন), $toDate, $toLong ইত্যাদি।