MongoDB-এ জটিল শর্তের জন্য $and এবং $or অপারেটর কম্বাইন করে ব্যবহার করা যায়।
নমুনা ডেটা তৈরি
> db.combinedAndOrDemo.insertOne({"StudentFirstName":"John","StudentAge":23,"StudentSkill":"MongoDB"});
{ "acknowledged": true, "insertedId": ObjectId("5cd306dcb64f4b851c3a13e2") }
> db.combinedAndOrDemo.insertOne({"StudentFirstName":"Larry","StudentAge":21,"StudentSkill":"MySQL"});
{ "acknowledged": true, "insertedId": ObjectId("5cd306f3b64f4b851c3a13e3") }
> db.combinedAndOrDemo.insertOne({"StudentFirstName":"Sam","StudentAge":24,"StudentSkill":"SQL Server"});
{ "acknowledged": true, "insertedId": ObjectId("5cd30701b64f4b851c3a13e4") }
সব ডকুমেন্ট দেখুন
> db.combinedAndOrDemo.find().pretty();আউটপুট:
{
"_id": ObjectId("5cd306dcb64f4b851c3a13e2"),
"StudentFirstName": "John",
"StudentAge": 23,
"StudentSkill": "MongoDB"
}
{
"_id": ObjectId("5cd306f3b64f4b851c3a13e3"),
"StudentFirstName": "Larry",
"StudentAge": 21,
"StudentSkill": "MySQL"
}
{
"_id": ObjectId("5cd30701b64f4b851c3a13e4"),
"StudentFirstName": "Sam",
"StudentAge": 24,
"StudentSkill": "SQL Server"
}
কম্বাইন করা কোয়েরি: (Name=John AND _id=...) OR (Skill=MongoDB)
> db.combinedAndOrDemo.find({
"$or": [
{"$and": [
{"StudentFirstName": "John"},
{"_id": ObjectId("5cd306dcb64f4b851c3a13e2")}
]},
{"StudentSkill": "MongoDB"}
]
});
আউটপুট (John ডকুমেন্ট মэтচ করেছে):
{
"_id": ObjectId("5cd306dcb64f4b851c3a13e2"),
"StudentFirstName": "John",
"StudentAge": 23,
"StudentSkill": "MongoDB"
}
ব্যাখ্যা: $or-এর ভিতরে $and ব্যবহার করে জটিল লজিক তৈরি করা হয়েছে। প্রথম শর্তে নাম এবং আইডি দুটোই মэтচ করতে হবে, অথবা দ্বিতীয় শর্তে স্কিল MongoDB হলে মэтচ হবে।