MongoDB, एक NoSQL डॉक्यूमेंट डेटाबेस, शक्तिशाली क्वेरी क्षमताएँ प्रदान करता है। यह गाइड विभिन्न फ़ील्ड्स में कई मानों से मेल खाने वाले दस्तावेज़ों को पुनः प्राप्त करने के लिए कुशल तकनीकों का पता लगाता है, जो मुख्य MongoDB ऑपरेटरों पर केंद्रित है।
विषयवस्तु
- MongoDB क्वेरी संरचना को समझना
- $in ऑपरेटर का उपयोग करना
- $or के साथ शर्तों को संयोजित करना
- $and के साथ शर्तों को संयोजित करना
- जटिल क्वेरी का निर्माण
- प्रदर्शन पर विचार
- अक्सर पूछे जाने वाले प्रश्न
MongoDB क्वेरी संरचना को समझना
MongoDB क्वेरी JSON-जैसे दस्तावेज़ हैं। क्वेरी में फ़ील्ड आपके दस्तावेज़ों में फ़ील्ड से मेल खाते हैं; मान मिलान मानदंड को परिभाषित करते हैं। उदाहरण के लिए, एक दस्तावेज़ खोजने के लिए जहाँ name
फ़ील्ड “John Doe” है:
db.collection.find({ name: "John Doe" })
$in ऑपरेटर का उपयोग करना
$in
ऑपरेटर कुशलतापूर्वक कई मानों के विरुद्ध एकल फ़ील्ड से मेल खाता है। एक products
संग्रह पर विचार करें जिसमें category
फ़ील्ड है:
db.products.find({ category: { $in: ["Electronics", "Clothing"] } })
यह “Electronics” या “Clothing” श्रेणियों में उत्पादों को पुनः प्राप्त करता है।
$or के साथ शर्तों को संयोजित करना
$or
ऑपरेटर कई शर्तों को जोड़ता है; यदि कम से कम एक शर्त सत्य है तो एक दस्तावेज़ मेल खाता है। “Electronics” में या $100 से अधिक मूल्य वाले उत्पादों को खोजने के लिए:
db.products.find({
$or: [
{ category: "Electronics" },
{ price: { $gt: 100 } }
]
})
$and के साथ शर्तों को संयोजित करना
$and
ऑपरेटर के लिए सभी शर्तों का सत्य होना आवश्यक है। $50 से कम “Electronics” उत्पादों को खोजने के लिए:
db.products.find({
$and: [
{ category: "Electronics" },
{ price: { $lt: 50 } }
]
})
अक्सर, $and
निहित होता है:
db.products.find({ category: "Electronics", price: { $lt: 50 } })
जटिल क्वेरी का निर्माण
परिष्कृत क्वेरी के लिए ऑपरेटरों को मिलाएँ। उदाहरण के लिए, “Electronics” या “Clothing” में $50 से कम की लागत वाले उत्पादों को खोजें:
db.products.find({
$or: [
{ category: { $in: ["Electronics", "Clothing"] } },
{ price: { $lt: 50 } }
]
})
प्रदर्शन पर विचार
कई शर्तों के साथ $or
का उपयोग करने से प्रदर्शन प्रभावित हो सकता है। इंडेक्स क्वेरी गति में महत्वपूर्ण सुधार करते हैं। अक्सर क्वेरी किए गए फ़ील्ड्स (जैसे, category
और price
) पर इंडेक्स बनाएँ।
अक्सर पूछे जाने वाले प्रश्न
- प्रश्न: क्या मैं कई फ़ील्ड्स के साथ
$in
का उपयोग कर सकता हूँ? उत्तर: नहीं। कई फ़ील्ड्स के लिए$or
का उपयोग करें। - प्रश्न: कई शर्तों के साथ
$or
प्रदर्शन को कैसे प्रभावित करता है? उत्तर: प्रदर्शन कम हो सकता है। क्वेरी को अनुकूलित करें और इंडेक्स का उपयोग करें। - प्रश्न: क्या
$or
/$and
के साथ शर्तों की कोई सीमा है? उत्तर: कोई सख्त सीमा नहीं है, लेकिन अत्यधिक बड़ी क्वेरी अकुशल हैं। क्वेरी को संक्षिप्त रखें।