MongoDB-এ কোনো ফিল্ডে মান স্ট্রিং বা নাম্বার যেকোনো ফরম্যাটে থাকতে পারে (যেমন "44" বা 44)। উভয় কেসে ম্যাচ করতে $in অপারেটর ব্যবহার করুন।
উদাহরণ
একই ডেটা স্ট্রিং এবং নাম্বার আকারে দুটি ডকুমেন্টে ইনসার্ট করুন:
> db.searchForStringOrNumberDemo.insertOne({
"_id": new ObjectId(),
"StudentName": "Larry",
"StudentDetails": { "StudentMarks": { "StudentMongoDBMarks": [44] } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce2407c36e8b255a5eee944") }
> db.searchForStringOrNumberDemo.insertOne({
"_id": new ObjectId(),
"StudentName": "Larry",
"StudentDetails": { "StudentMarks": { "StudentMongoDBMarks": ["44"] } }
});
{ "acknowledged" : true, "insertedId" : ObjectId("5ce240f036e8b255a5eee945") }
সকল ডকুমেন্ট দেখুন:
> db.searchForStringOrNumberDemo.find().pretty();
আউটপুট:
{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }
স্ট্রিং "44" বা নাম্বার 44 যেকোনো থাকলে ডকুমেন্ট বের করা
> db.searchForStringOrNumberDemo.find({
"StudentDetails.StudentMarks.StudentMongoDBMarks": { "$in": ["44", 44] }
});
আউটপুট:
{ "_id" : ObjectId("5ce2407c36e8b255a5eee944"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ 44 ] } } }
{ "_id" : ObjectId("5ce240f036e8b255a5eee945"), "StudentName" : "Larry", "StudentDetails" : { "StudentMarks" : { "StudentMongoDBMarks" : [ "44" ] } } }
ব্যাখ্যা:
$in: ["44", 44]— অ্যারেতে যেকোনো একটি মান ("44" স্ট্রিং বা 44 নাম্বার) থাকলে ম্যাচ করে।- ডট নোটেশন (
StudentDetails.StudentMarks.StudentMongoDBMarks) দিয়ে নেস্টেড অ্যারে ফিল্ড এক্সেস করা হয়েছে। - MongoDB অটোমেটিক্যালি অ্যারেতে মান খুঁজে বের করে।
সুপারিশ: ডেটা ইনসার্ট করার সময় টাইপ কনসিস্টেন্সি রক্ষা করুন (সবসময় নাম্বার বা সবসময় স্ট্রিং) যাতে ক্যোয়ারি সহজ হয়।