MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में संग्रह अस्तित्व की जाँच करें

1. अवलोकन

MongoDB एक NoSQL डेटाबेस है जो डेटा रिकॉर्ड को BSON . के रूप में संग्रहीत करता है एक संग्रह में दस्तावेज़। हमारे पास एकाधिक डेटाबेस हो सकते हैं, और प्रत्येक डेटाबेस में दस्तावेज़ों का एक या अधिक संग्रह हो सकता है।

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

2. डेटाबेस कनेक्टिविटी

किसी संग्रह के किसी भी डेटा तक पहुँचने के लिए, हमें सबसे पहले डेटाबेस के साथ एक कनेक्शन स्थापित करना होगा। आइए MongoDB डेटाबेस से कनेक्ट करें जो हमारी मशीन पर स्थानीय रूप से चल रहा है।

2.1. MongoClient . का उपयोग करके कनेक्शन बनाएं

मोंगो क्लाइंट  एक जावा वर्ग है जिसका उपयोग MongoDB उदाहरण के साथ संबंध स्थापित करने के लिए किया जाता है:

MongoClient mongoClient = new MongoClient("localhost", 27017);

यहां, हम MongoDB से जुड़ रहे हैं जो लोकलहोस्ट पर पोर्ट डिफॉल्ट पोर्ट 27017 पर चल रहा है।

2.2. डेटाबेस से कनेक्ट करें

अब, आइए MongoClient . का उपयोग करें डेटाबेस तक पहुँचने के लिए आपत्ति। MongoClient . का उपयोग करके डेटाबेस तक पहुंचने के दो तरीके हैं ।

सबसे पहले, हम getDatabase . का उपयोग करेंगे बेल्डुंग . तक पहुंचने का तरीका डेटाबेस:

MongoDatabase database = mongoClient.getDatabase("baeldung");

हम getDB . का भी उपयोग कर सकते हैं डेटाबेस से कनेक्ट करने के लिए Mongo Java ड्राइवर की विधि:

DB db = mongoClient.getDB("baeldung");

getDB  विधि बहिष्कृत है, इसलिए इसका उपयोग करने की अनुशंसा नहीं की जाती है।

अब तक, हमने MongoClient का उपयोग करके MongoDB के साथ एक कनेक्शन स्थापित किया है और आगे baeldung से कनेक्ट किया है। डेटाबेस।

आइए MongoDB में एक संग्रह के अस्तित्व की जाँच करने के लिए विभिन्न दृष्टिकोणों पर गहराई से विचार करें।

3. डीबी . का उपयोग करना कक्षा

MongoDB जावा ड्राइवर सिंक्रोनस और एसिंक्रोनस विधि कॉल दोनों प्रदान करता है। डेटाबेस से जुड़ने के लिए, हमें बस डेटाबेस का नाम निर्दिष्ट करना होगा। यदि डेटाबेस मौजूद नहीं है, तो MongoDB स्वचालित रूप से एक बना देगा।

संग्रह मौजूद है संग्रह मौजूद है या नहीं यह जांचने के लिए विधि का उपयोग किया जा सकता है:

MongoClient mongoClient = new MongoClient("localhost", 27017);
DB db = mongoClient.getDB("baeldung");
String testCollectionName = "student";
System.out.println("Collection Name " + testCollectionName + " " + db.collectionExists(testCollectionName));

यहां, संग्रह मौजूद है विधि सत्य लौटाएगी यदि संग्रह मौजूद है, अन्यथा गलत है।

com.mongodb.DB MongoDB जावा ड्राइवर का एपीआई संस्करण 3.x से हटा दिया गया है, लेकिन यह अभी भी सुलभ है। इसलिए, डीबी नए प्रोजेक्ट के लिए क्लास का उपयोग करने की अनुशंसा नहीं की जाती है।

4. MongoDatabase . का उपयोग करना कक्षा

com.mongodb.client.MongoDatabase Mongo 3.x और इसके बाद के संस्करण के लिए एक अद्यतन API है। DB वर्ग के विपरीत, MongoDatabase वर्ग किसी संग्रह के अस्तित्व की जाँच करने के लिए कोई विशिष्ट विधि प्रदान नहीं करता है। लेकिन, वांछित परिणाम प्राप्त करने के लिए हम विभिन्न तरीकों का उपयोग कर सकते हैं।

4.1. createCollection . का उपयोग करना विधि

संग्रह बनाएं विधि MongoDB में एक नया संग्रह बनाती है। लेकिन हम इसका उपयोग यह जांचने के लिए भी कर सकते हैं कि कोई संग्रह मौजूद है या नहीं:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
try {
    database.createCollection(testCollectionName);
} catch (Exception exception) {
    System.err.println("Collection:- "+testCollectionName +" already Exists");
}

उपरोक्त कोड एक नया संग्रह “विद्यार्थी” . बनाएगा अगर यह पहले से डेटाबेस में मौजूद नहीं है। संग्रह बनाएं यदि संग्रह पहले से मौजूद है तो विधि एक अपवाद फेंक देगी।

इस दृष्टिकोण की अनुशंसा नहीं की जाती है क्योंकि यह डेटाबेस में एक नया संग्रह बनाता है।

4.2. listCollectionNames . का उपयोग करना विधि

सूची संग्रह नाम विधि डेटाबेस में सभी संग्रह नामों को सूचीबद्ध करती है। इसलिए, हम संग्रह अस्तित्व के मुद्दे को हल करने के लिए इस पद्धति का उपयोग कर सकते हैं।

आइए अब listCollectionNames . के उदाहरण कोड को देखें जावा ड्राइवर कोड का उपयोग करने की विधि:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
boolean collectionExists = database.listCollectionNames()
  .into(new ArrayList()).contains(testCollectionName);
System.out.println("collectionExists:- " + collectionExists);

यहां, हमने डेटाबेस baeldung. में सभी संग्रह नामों की सूची पर पुनरावृति की है। प्रत्येक घटना के लिए, हम संग्रह स्ट्रिंग नाम का मिलान testCollectionName . से करते हैं . यह सच लौटाएगा एक सफल मैच पर, गलत अन्यथा।

4.3. गिनती . का उपयोग करना विधि

गिनती MongoCollection . की विधि संग्रह में मौजूद दस्तावेज़ों की संख्या की गणना करता है।

वर्कअराउंड के रूप में, हम इस पद्धति का उपयोग संग्रह के अस्तित्व की जांच करने के लिए कर सकते हैं। इसके लिए जावा कोड स्निपेट यहां दिया गया है:

String databaseName="baeldung";
MongoDatabase database = mongoClient.getDatabase(databaseName);
String testCollectionName = "student";
MongoCollection<Document> collection = database.getCollection(testCollectionName);
Boolean collectionExists = collection.count() > 0 ? true : false;
System.out.println("collectionExists:- " + collectionExists);
Boolean expectedStatus = false;
assertEquals(expectedStatus, collectionExists);

यदि कोई संग्रह बिना किसी डेटा के मौजूद है तो यह विधि काम नहीं करती है, उस स्थिति में, यह 0 लौटाएगा, लेकिन संग्रह खाली डेटा के साथ मौजूद है।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDb योग क्वेरी

  2. मोंगोडब में अद्यतन दस्तावेजों की संख्या को कैसे सीमित करें

  3. Heroku mongohq और mongoid Mongo::ConnectionFailure

  4. टेम्पलेट में उपयोग के लिए MongoDB से HTML प्राप्त करना

  5. Mongodb स्ट्रिंग से ObjectId तक _id फ़ील्ड में शामिल हों