1. अवलोकन
इस लेख में, हम MongoDB को एकीकृत करने पर एक नज़र डालेंगे, जो एक स्टैंडअलोन जावा क्लाइंट के साथ एक बहुत ही लोकप्रिय NoSQL ओपन सोर्स डेटाबेस है।
MongoDB C++ में लिखा गया है और इसमें कई ठोस विशेषताएं हैं जैसे कि मैप-रिड्यूस, ऑटो-शर्डिंग, प्रतिकृति, उच्च उपलब्धता आदि।
2. मोंगोडीबी
आइए MongoDB के बारे में कुछ प्रमुख बिंदुओं के साथ शुरुआत करें:
- JSON जैसे दस्तावेज़ों में डेटा संग्रहीत करता है जिसमें विभिन्न संरचनाएं हो सकती हैं
- डायनेमिक स्कीमा का उपयोग करता है, जिसका अर्थ है कि हम कुछ भी पूर्वनिर्धारित किए बिना रिकॉर्ड बना सकते हैं
- रिकॉर्ड की संरचना को केवल नए फ़ील्ड जोड़कर या मौजूदा फ़ील्ड को हटाकर बदला जा सकता है
उपर्युक्त डेटा मॉडल हमें पदानुक्रमित संबंधों का प्रतिनिधित्व करने, सरणियों और अन्य जटिल संरचनाओं को आसानी से संग्रहीत करने की क्षमता देता है।
3. शब्दावली
MongoDB में अवधारणाओं को समझना आसान हो जाता है यदि हम उनकी तुलना रिलेशनल डेटाबेस संरचनाओं से कर सकते हैं।
आइए देखते हैं मोंगो और पारंपरिक MySQL सिस्टम के बीच समानताएं:
- तालिका MySQL में एक संग्रह बन जाता है मोंगो में
- पंक्ति एक दस्तावेज़ बन जाता है
- कॉलम एक फ़ील्ड बन जाता है
- जुड़ता है लिंकिंग . के रूप में परिभाषित किया गया है और एम्बेडेड दस्तावेज़
यह निश्चित रूप से MongoDB मूल अवधारणाओं को देखने का एक सरल तरीका है, लेकिन फिर भी उपयोगी है।
अब, इस शक्तिशाली डेटाबेस को समझने के लिए कार्यान्वयन पर ध्यान दें।
4. मावेन निर्भरता
हमें MongoDB के लिए जावा ड्राइवर की निर्भरता को परिभाषित करके शुरू करने की आवश्यकता है:
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>3.4.1</version>
</dependency>
यह जांचने के लिए कि क्या पुस्तकालय का कोई नया संस्करण जारी किया गया है - यहां रिलीज को ट्रैक करें।
5. MongoDB का उपयोग करना
अब, जावा के साथ मोंगो प्रश्नों को लागू करना शुरू करते हैं। हम बुनियादी सीआरयूडी संचालन का पालन करेंगे क्योंकि वे शुरू करने के लिए सबसे अच्छे हैं।
5.1. MongoClient . के साथ संबंध बनाएं
सबसे पहले, एक MongoDB सर्वर से संबंध बनाते हैं। संस्करण>=2.10.0 के साथ, हम MongoClient . का उपयोग करेंगे :
MongoClient mongoClient = new MongoClient("localhost", 27017);
और पुराने संस्करणों के लिए मोंगो . का उपयोग करें कक्षा:
Mongo mongo = new Mongo("localhost", 27017);
5.2. किसी डेटाबेस से कनेक्ट करना
अब, हमारे डेटाबेस से जुड़ें। यह ध्यान रखना दिलचस्प है कि हमें एक बनाने की आवश्यकता नहीं है। जब Mongo देखता है कि डेटाबेस मौजूद नहीं है, तो वह इसे हमारे लिए बनाएगा:
DB database = mongoClient.getDB("myMongoDb");
कभी-कभी, डिफ़ॉल्ट रूप से, MongoDB प्रमाणित मोड में चलता है। उस स्थिति में, हमें डेटाबेस से कनेक्ट करते समय प्रमाणित करने की आवश्यकता होती है।
हम इसे नीचे प्रस्तुत के रूप में कर सकते हैं:
MongoClient mongoClient = new MongoClient();
DB database = mongoClient.getDB("myMongoDb");
boolean auth = database.authenticate("username", "pwd".toCharArray());
5.3. मौजूदा डेटाबेस दिखाएं
आइए सभी मौजूदा डेटाबेस प्रदर्शित करें। जब हम कमांड लाइन का उपयोग करना चाहते हैं, तो डेटाबेस दिखाने के लिए सिंटैक्स MySQL के समान होता है:
show databases;
जावा में, हम नीचे स्निपेट का उपयोग करके डेटाबेस प्रदर्शित करते हैं:
mongoClient.getDatabaseNames().forEach(System.out::println);
आउटपुट होगा:
local 0.000GB
myMongoDb 0.000GB
ऊपर, स्थानीय डिफ़ॉल्ट मोंगो डेटाबेस है।
5.4. एक संग्रह बनाएं
आइए एक संग्रह बनाकर प्रारंभ करें (MongoDB के लिए तालिका समतुल्य) हमारे डेटाबेस के लिए। एक बार जब हम अपने डेटाबेस से जुड़ जाते हैं, तो हम एक संग्रह बना सकते हैं के रूप में:
database.createCollection("customers", null);
अब, वर्तमान डेटाबेस के लिए सभी मौजूदा संग्रह प्रदर्शित करते हैं:
database.getCollectionNames().forEach(System.out::println);
आउटपुट होगा:
customers
5.5. सहेजें - डालें
सहेजें ऑपरेशन में सेव-या-अपडेट शब्दार्थ है:यदि कोई आईडी मौजूद है, यह एक अपडेट करता है , यदि नहीं - यह एक सम्मिलित . करता है ।
जब हम सहेजते हैं एक नया ग्राहक:
DBCollection collection = database.getCollection("customers");
BasicDBObject document = new BasicDBObject();
document.put("name", "Shubham");
document.put("company", "Baeldung");
collection.insert(document);
इकाई को डेटाबेस में सम्मिलित किया जाएगा:
{
"_id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
"name" : "Shubham",
"company" : "Baeldung"
}
इसके बाद, हम उसी ऑपरेशन को देखेंगे - सहेजें - अपडेट . के साथ शब्दार्थ।
5.6. सहेजें - अपडेट करें
आइए अब देखें सहेजें अपडेट . के साथ शब्दार्थ, मौजूदा ग्राहक पर काम कर रहा है:
{
"_id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
"name" : "Shubham",
"company" : "Baeldung"
}
अब, जब हम सहेजें मौजूदा ग्राहक - हम इसे अपडेट करेंगे:
BasicDBObject query = new BasicDBObject();
query.put("name", "Shubham");
BasicDBObject newDocument = new BasicDBObject();
newDocument.put("name", "John");
BasicDBObject updateObject = new BasicDBObject();
updateObject.put("$set", newDocument);
collection.update(query, updateObject);
डेटाबेस इस तरह दिखेगा:
{
"_id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
"name" : "John",
"company" : "Baeldung"
}
जैसा कि आप देख सकते हैं, इस विशेष उदाहरण में, सहेजें अपडेट . के शब्दार्थ का उपयोग करता है , क्योंकि हम दिए गए _id . के साथ ऑब्जेक्ट का उपयोग करते हैं ।
5.7. एक दस्तावेज़ पढ़ें संग्रह . से
आइए एक दस्तावेज़ खोजें एक संग्रह . में एक प्रश्न पूछकर:
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "John");
DBCursor cursor = collection.find(searchQuery);
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
यह केवल दस्तावेज़ दिखाएगा हमारे पास अब तक हमारे संग्रह . में है :
[
{
"_id" : ObjectId("33a52bb7830b8c9b233b4fe6"),
"name" : "John",
"company" : "Baeldung"
}
]
5.8. हटाएं एक दस्तावेज़
आइए अपने पिछले CRUD ऑपरेशन, विलोपन की ओर बढ़ते हैं:
BasicDBObject searchQuery = new BasicDBObject();
searchQuery.put("name", "John");
collection.remove(searchQuery);
उपरोक्त आदेश निष्पादित होने के साथ, हमारा एकमात्र दस्तावेज़ संग्रह . से हटा दिया जाएगा ।