MongoDB में $and और $in ऑपरेटर संयोजित करना
जटिल शर्तों के लिए $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" }
कंबाइंड AND & OR क्वेरी
> db.combinedAndOrDemo.find({
"$or": [
{"$and": [
{"StudentFirstName": "John"},
{"_id": ObjectId("5cd306dcb64f4b851c3a13e2")}
]},
{"StudentSkill": "MongoDB"}
]
});
{ "_id": ObjectId("5cd306dcb64f4b851c3a13e2"), "StudentFirstName": "John", "StudentAge": 23, "StudentSkill": "MongoDB" }
क्वेरी विश्लेषण
यह क्वेरी निम्नलिखित शर्त पूरी करने वाले डॉक्यूमेंट खोजती है:
- शर्त 1 (AND): StudentFirstName = "John" AND _id = विशिष्ट ObjectId
- शर्त 2: StudentSkill = "MongoDB"
- अंतिम: शर्त 1 OR शर्त 2
सरल उदाहरण
// (Age > 20 AND Age < 25) OR Skill = "MongoDB"
db.collection.find({
$or: [
{ $and: [{Age: {$gt: 20}}, {Age: {$lt: 25}}] },
{StudentSkill: "MongoDB"}
]
})
नोट
- MongoDB में टॉप-लेवल फ़ील्ड कॉमा से सेपरेटेड होते हैं तो वे AND होते हैं
$andतब जरूरी जब एक ही फ़ील्ड पर कई कंडीशन हों$orसरणी में प्रत्येक एलिमेंट एक पूर्ण क्वेरी दस्तावेज़ होता है