MongoDB क्वेरी दस्तावेज़: db.collection.find() उदाहरण के साथ

⚡ स्मार्ट सारांश

MongoDB क्वेरी डॉक्यूमेंट ऑपरेशन db.collection.find() फ़ंक्शन का उपयोग करके किसी कलेक्शन से रिकॉर्ड प्राप्त करता है। यह विधि डिफ़ॉल्ट रूप से सभी दस्तावेज़ लौटाती है, फ़ील्ड मिलान और $gt ऑपरेटर जैसे फ़िल्टर मानदंड स्वीकार करती है, और forEach(printjson) कमांड के साथ परिणामों को फ़ॉर्मेट करती है।

  • 🔍 find() फ़ंक्शन: db.collection.find() विधि किसी संग्रह से दस्तावेज़ों को पुनर्प्राप्त करती है। MongoDB जब कोई फ़िल्टर नहीं दिया जाता है तो संग्रह, प्रत्येक दस्तावेज़ को लौटाता है।
  • 🎯 फ़िल्टर मानदंड: क्वेरी ऑब्जेक्ट, जैसे कि {EmployeeName: “Smith”}, पास करने पर केवल वही दस्तावेज़ वापस मिलते हैं जो शर्त से मेल खाते हैं।
  • प्रश्न Operaटोर्स: $gt, $lt और $in जैसे चयन ऑपरेटर परिणामों को परिष्कृत करते हैं, उदाहरण के लिए 2 से अधिक आईडी वाले कर्मचारियों को ढूंढना।
  • 🖨️ Readable आउटपुट: forEach(printjson) को एक साथ उपयोग करने से लौटाए गए प्रत्येक दस्तावेज़ को एक साफ JSON प्रारूप में प्रिंट किया जाता है।
  • 🧾 प्रोजेक्शन: find() फ़ंक्शन का दूसरा आर्गुमेंट यह चुनता है कि परिणामों में किन फ़ील्ड्स को शामिल करना है या किन फ़ील्ड्स को बाहर करना है।

किसी स्थान से डेटा प्राप्त करने या लाने की विधि MongoDB डेटाबेस का उपयोग करके किया जाता है MongoDB क्वेरीज़। क्वेरी ऑपरेशन करते समय, कोई मानदंड या शर्तों का भी उपयोग कर सकता है जिसका उपयोग डेटाबेस से विशिष्ट डेटा प्राप्त करने के लिए किया जा सकता है।

MongoDB नामक एक फ़ंक्शन प्रदान करता है डीबी.संग्रह.ढूंढें () जिसका उपयोग दस्तावेजों को पुनः प्राप्त करने के लिए किया जाता है MongoDB डेटाबेस।

इस दौरान MongoDB क्वेरी ट्यूटोरियल में, आप देखेंगे कि दस्तावेज़ पुनर्प्राप्ति के उद्देश्य को प्राप्त करने के लिए इस फ़ंक्शन का उपयोग विभिन्न तरीकों से कैसे किया जाता है।

db.collection.find() क्या है? MongoDB?

db.collection.find() विधि किसी डेटाबेस से दस्तावेज़ पढ़ने का प्राथमिक तरीका है। MongoDB जब आप इसे बिना किसी आर्गुमेंट के कॉल करते हैं, तो यह कलेक्शन में मौजूद सभी डॉक्यूमेंट लौटाता है। जब आप एक क्वेरी ऑब्जेक्ट पास करते हैं, तो यह केवल दिए गए मानदंडों से मेल खाने वाले डॉक्यूमेंट लौटाता है, जिससे आप ठीक वही डेटा प्राप्त कर सकते हैं जिसकी आपको आवश्यकता है।

यह विधि एक कर्सर लौटाती है, जो दस्तावेज़ों के बजाय परिणाम सेट का एक पॉइंटर होता है। परिणामों को प्रदर्शित करने के लिए आप आमतौर पर कर्सर के माध्यम से लूप करते हैं, अक्सर प्रत्येक दस्तावेज़ को पठनीय JSON में दिखाने के लिए forEach(printjson) का उपयोग करते हैं। यदि आपको केवल एक रिकॉर्ड की आवश्यकता है, MongoDB यह findOne() फ़ंक्शन भी प्रदान करता है, जो कर्सर के बजाय पहला मेल खाने वाला दस्तावेज़ लौटाता है। find() और findOne() मिलकर एक कंप्यूटर में अधिकांश रीड ऑपरेशन्स को कवर करते हैं। MongoDB डेटाबेस, संपूर्ण संग्रह को लाने से लेकर विशिष्ट फ़ील्ड मानों द्वारा फ़िल्टर करने तक।

MongoDB मूल प्रश्न Operaमाहौल

बुनियादी MongoDB क्वेरी ऑपरेटर सरल ऑपरेशन को कवर करते हैं जैसे कि सभी दस्तावेज़ों को एक ही स्थान पर प्राप्त करना। MongoDB आइए db.collection.find का उदाहरण देखें कि हम इसे कैसे पूरा कर सकते हैं।

हमारा सारा कोड चलाया जाएगा MongoDB Javaलिपि कमांड शेल। मान लीजिए कि हमारे पास 'कर्मचारी' नाम का एक संग्रह है MongoDB डेटाबेस और हम नीचे दिए गए आदेश को निष्पादित करते हैं।

MongoDB मूल प्रश्न Operaमाहौल
MongoDB बुनियादी क्वेरी ऑपरेशन

Code स्पष्टीकरण:

  1. कर्मचारी संग्रह का नाम है MongoDB डेटाबेस
  2. RSI MongoDB खोज क्वेरी एक अंतर्निहित फ़ंक्शन है जिसका उपयोग संग्रह में दस्तावेज़ों को पुनः प्राप्त करने के लिए किया जाता है।

यदि कमांड सफलतापूर्वक निष्पादित हो जाता है, तो निम्न आउटपुट दिखाया जाएगा MongoDB उदाहरण खोजें

आउटपुट:

MongoDB मूल प्रश्न Operaमाहौल

आउटपुट संग्रह में मौजूद सभी दस्तावेज़ों को दिखाता है।

हम अपनी क्वेरीज़ में मानदंड भी जोड़ सकते हैं ताकि हम कुछ शर्तों के आधार पर दस्तावेज़ प्राप्त कर सकें।

MongoDB क्वेरी उदाहरण – 1

आइये कुछ उदाहरणों पर नजर डालें MongoDB इस बात के उदाहरण मांगें कि हम इसे कैसे पूरा कर सकते हैं।

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

Code स्पष्टीकरण:

  1. यहां हम एक कर्मचारी को ढूंढना चाहते हैं जिसका नाम संग्रह में “स्मिथ” है, इसलिए हम फ़िल्टर मानदंड को कर्मचारी नाम: “स्मिथ” के रूप में दर्ज करते हैं

यदि आदेश सफलतापूर्वक निष्पादित होता है, तो निम्नलिखित आउटपुट दिखाया जाएगा

आउटपुट:

MongoDB क्वेरी उदाहरण

आउटपुट से पता चलता है कि केवल वह दस्तावेज़ लौटाया जाता है जिसमें कर्मचारी नाम के रूप में "स्मिथ" शामिल है।

MongoDB क्वेरी उदाहरण – 2

अब इसमें MongoDB क्वेरीज़ ट्यूटोरियल में, आइए एक और कोड उदाहरण देखें जो खोज मानदंड से अधिक का उपयोग करता है। जब यह मानदंड शामिल किया जाता है, तो यह वास्तव में उन दस्तावेज़ों को खोजता है जहाँ फ़ील्ड का मान निर्दिष्ट मान से अधिक होता है।

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

Code स्पष्टीकरण:

  1. यहां हम उन सभी कर्मचारियों को ढूंढना चाहते हैं जिनकी आईडी 2 से अधिक है। $gt को क्वेरी चयन ऑपरेटर कहा जाता है, और इसका मतलब है कि अधिक से अधिक अभिव्यक्ति का उपयोग करना।

अगर MongoDB select fields कमांड सफलतापूर्वक निष्पादित होने पर, निम्नलिखित आउटपुट दिखाया जाएगा

आउटपुट:

MongoDB क्वेरी उदाहरण

वे सभी दस्तावेज जिनमें कर्मचारी आईडी 2 से अधिक है, लौटा दिए जाते हैं।

MongoDB प्रश्न Operaमरोड़

MongoDB यह फ़िल्टर find() क्राइटेरिया के अंदर क्वेरी सिलेक्शन ऑपरेटरों का उपयोग करके दस्तावेज़ों को फ़िल्टर करता है। ये ऑपरेटर आपको केवल सटीक मानों के बजाय श्रेणियों, सूचियों और निषेधों का मिलान करने की अनुमति देते हैं। नीचे दी गई तालिका में सबसे सामान्य ऑपरेटरों की सूची दी गई है:

Operaटो अर्थ उदाहरण
$gt से अधिक {Employeeid: {$gt: 2}}
$lt Less से {Employeeid: {$lt: 5}}
$gte इससे बड़ा या इसके बराबर {आयु: {$gte: 18}}
$एलटीई Less से या उसके बराबर {आयु: {$lte: 60}}
$ने बराबर नही है {स्थिति: {$ne: “सक्रिय”}}
$में सूची में किसी भी मान से मेल खाता है {विभाग: {$in: [“एचआर”,”आईटी”]}}

आप $and और $or का उपयोग करके शर्तों को संयोजित करके अधिक सटीक क्वेरी बना सकते हैं। सही ऑपरेटर का चयन करने से क्वेरी कुशल बनी रहती है और केवल वही दस्तावेज़ वापस मिलते हैं जिनकी आपके एप्लिकेशन को आवश्यकता होती है।

find() फ़ंक्शन के साथ प्रोजेक्शन का उपयोग कैसे करें

डिफ़ॉल्ट रूप से, find() फ़ंक्शन पूरे दस्तावेज़ को लौटाता है, जिसमें सभी फ़ील्ड शामिल होते हैं। अक्सर आपको केवल कुछ फ़ील्ड की आवश्यकता होती है, जैसे कि नाम या आईडी। MongoDB यह आपको एक प्रोजेक्शन के साथ इसे नियंत्रित करने की अनुमति देता है, जो कि find() को पास किया गया दूसरा तर्क है जो शामिल या बाहर किए जाने वाले फ़ील्ड को सूचीबद्ध करता है।

केवल विशिष्ट फ़ील्ड शामिल करने के लिए, प्रोजेक्शन ऑब्जेक्ट में उन्हें 1 पर सेट करें। निम्नलिखित क्वेरी प्रत्येक दस्तावेज़ के लिए केवल EmployeeName फ़ील्ड लौटाती है:

db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);

MongoDB जब तक आप इसे स्पष्ट रूप से बाहर नहीं करते, यह हमेशा _id फ़ील्ड लौटाता है। इसे छिपाने के लिए, _id को 0 पर सेट करें:

db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);

आप फ़ील्ड को शामिल करने के बजाय उन्हें 0 पर सेट करके बाहर भी कर सकते हैं। उदाहरण के लिए, नीचे दी गई क्वेरी एम्प्लॉई आईडी को छोड़कर सभी फ़ील्ड लौटाती है:

db.Employee.find({}, {Employeeid: 0}).forEach(printjson);

ध्यान रखें कि _id फ़ील्ड को छोड़कर, आप एक ही प्रोजेक्शन में समावेशन और अपवर्जन को एक साथ नहीं मिला सकते। प्रोजेक्शन का उपयोग करने से सर्वर से स्थानांतरित होने वाले डेटा की मात्रा कम हो जाती है, जिससे क्वेरी तेज़ हो जाती हैं और प्रतिक्रियाएँ पढ़ने में आसान हो जाती हैं, खासकर बड़े दस्तावेज़ों पर।

अक्सर पूछे जाने वाले प्रश्न

find() क्वेरी से मेल खाने वाले सभी दस्तावेज़ों का कर्सर लौटाता है, इसलिए यह कई परिणाम दे सकता है। findOne() केवल पहले मेल खाने वाले दस्तावेज़ को एक ऑब्जेक्ट के रूप में लौटाता है, या यदि कोई मेल नहीं खाता है तो null लौटाता है।

find() कर्सर के साथ sort() और limit() को क्रम से जोड़ें। उदाहरण के लिए, find().sort({age:1}).limit(5) सबसे कम उम्र के पाँच रिकॉर्ड लौटाता है। sort() में आरोही क्रम के लिए 1 और अवरोही क्रम के लिए -1 का उपयोग करें।

उदाहरण के लिए, countDocuments() फ़ंक्शन का उपयोग उसी फ़िल्टर के साथ करें, जैसे db.Employee.countDocuments({EmployeeName:”Smith”})। यह दस्तावेज़ों को पुनः प्राप्त किए बिना मिलान करने वाले दस्तावेज़ों की संख्या लौटाता है, जो कि पूरे परिणाम सेट को पढ़ने और गिनने की तुलना में तेज़ है।

एआई एक सामान्य भाषा के अनुरोध को सही ऑपरेटरों और प्रोजेक्शन के साथ find() क्वेरी में परिवर्तित कर सकता है और प्रत्येक भाग की व्याख्या कर सकता है। उत्पादन में चलाने से पहले हमेशा नमूना डेटा पर क्वेरी का परीक्षण करें।

जी हां। एआई क्वेरी प्लान को पढ़ सकता है, छूटे हुए इंडेक्स या अक्षम ऑपरेटरों का पता लगा सकता है और इंडेक्स या संशोधित फ़िल्टर सुझा सकता है। इससे डेवलपर्स को बड़े संग्रहों पर find() फ़ंक्शन के प्रदर्शन को तेज़ी से बेहतर बनाने में मदद मिलती है।

इस पोस्ट को संक्षेप में इस प्रकार लिखें: