MongoDB क्लाइंट के बारे में आपको जो कुछ भी जानना है



यह लेख आपको सभी सुविधाओं और उपयोगों के साथ MongoDB क्लाइंट का विस्तृत और व्यापक ज्ञान प्रदान करेगा।

यदि आप पिछले कुछ समय से रिलेशनल डेटाबेस मैनेजमेंट सिस्टम के किसी भी रूप में हैं, तो आप शायद इसका नाम भर में ले आए हैं । सबसे पहले वर्ष 2009 में शुरू किया गया था, आज mongoDb उद्योग में सबसे लोकप्रिय रिलेशनल डेटाबेस प्रबंधन प्रणालियों में से एक है। बाजार में मौजूद MySql जैसे पुराने रिलेशनल डेटाबेस सॉफ्टवेयर प्रबंधकों की उपस्थिति के बावजूद इसकी पागल लोकप्रियता के पीछे मुख्य कारण संख्याओं की व्यापकता और बड़ी बहुमुखी प्रतिभा है जो इसे टेबल पर लाती है। MongoDB का उपयोग कई आवश्यकताओं को समाप्त करता है, उनमें से एक डेटाबेस बनाने और हर बार एक नई परियोजना शुरू होने पर डेटा प्रकार को परिभाषित करने की आवश्यकता है। MongoDB ग्राहक लेख का एजेंडा:





लेकिन MongoDB से अधिकतम कार्यक्षमता प्राप्त करने के लिए, किसी को MongoDB क्लाइंट से परिचित होना चाहिए और इस लेख में, हम उसके बारे में चर्चा करेंगे।

MongoDB क्लाइंट के लिए आवश्यक शर्तें

पूरी तरह से इस लेख के लिए, आपको पहले निम्नलिखित आवश्यक शर्तें पूरी करनी होंगी।



आपके सिस्टम में पहले से ही एक IDE मौजूद है।
जावा डेवलपमेंट किट या JDK संस्करण 1.8 और इसके बाद के संस्करण JAVA_HOME के ​​साथ ठीक से कॉन्फ़िगर किया गया है।
डोकर या MongoDB स्थापित।
Apache मावेन संस्करण 3.5.3 और ऊपर।

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

MongoDB ग्राहक लोगो



c ++ नाम स्थान का उपयोग करते हुए

इसके साथ ही, हमने यह सुनिश्चित किया है कि डेटा और सर्वर के बीच सभी संचार JSON में हैं और सभी डेटा MongoDB में संग्रहीत हैं।

शुरू करना

इस परियोजना के साथ आरंभ करने के लिए, नीचे दिए गए चरणों का पालन करें।

चरण # 1: मावेन पर परियोजना का निर्माण

पहला कदम हमेशा एक नई परियोजना बनाने के लिए होता है और ऐसा करने के लिए, निम्न कोड का उपयोग करें।

mvan io.quarkus: quarkus-maven-plugin: 0.22.0: create -DprojectGroupId = org.acme -DprojectArtifactId = का उपयोग करते हुए- mongodb-client -DclassName = 'org.acme.rest.json.FruitResource' -Dpath = 'फल /' '-Dextensions =' resteasy-jsonb, mongodb-client '

जब आप उपरोक्त कमांड चलाते हैं, तो IDE आपके सिस्टम पर JSON-B, MongoDb और RESTEasy / JAX-RS क्लाइंट आयात करेगा।

चरण 2 के साथ आगे बढ़ना।

चरण # 2: अपनी पहली JSON बाकी सेवा को जोड़ना

ऐसा करने के लिए, नीचे दिए गए कोड का उपयोग करें। पैकेज org.acme.rest.json import java.util.Objects सार्वजनिक वर्ग फल {निजी स्ट्रिंग नाम निजी स्ट्रिंग विवरण सार्वजनिक फल () {} सार्वजनिक फल (स्ट्रिंग नाम, स्ट्रिंग विवरण) {this.name = इस नाम को भेजें। विवरण = विवरण } public स्ट्रिंग getName () {रिटर्न नाम} public void setName (स्ट्रिंग नाम) {this.name = name} सार्वजनिक स्ट्रिंग getDescription () {रिटर्न विवरण} public void setDescription (स्ट्रिंग विवरण) यह this_description = विवरण} @Override public बूलियन बराबरी (ऑब्जेक्ट ओब्ज) {if ((obj instof फ्रूट)) {रिटर्न असत्य} फ्रूट अन्य = (फ्रूट) ओब्ज रिटर्न ऑब्जेक्स्पल्स (अन्य.नाम, यह.नाम)} @ ऑवरराइड पब्लिक इंट हैशकोड () {रिटर्न Objects.hash (यह.नाम)}}

उपरोक्त उदाहरण के साथ, हमने पहले फ्रूट बनाया है जो बाद में प्रोग्राम में उपयोग किया जाएगा।

आगे हमें org.acme.rest.json.FruitService फाइल बनानी होगी जो हमारे एप्लीकेशन की यूजर लेयर होगी। ऐसा करने के लिए, नीचे दिए गए कोड का उपयोग करें।

पैकेज org.acme.rest.json आयात com.mongodb.client.MongoClient आयात com.mongodb.client.MongoCollection आयात com.mongodb.client.MongoCursor आयात आयात org.bson.Document आयात आयात javax.enterprise.context.ApplicationScopedScoped आयात आयात बंद करने के लिए। .Inject import java.util.ArrayList इंपोर्ट java.util.List @ApplicationScoped public class FruitService {@Inject MongoClient mongoClient पब्लिक लिस्ट लिस्ट () {लिस्ट लिस्ट: नई ArrayList () MongoCursor कर्सर = getCollection () ()। ) कोशिश करें {जबकि (कर्सर.हास टेक्स्ट ()) डॉक्यूमेंट डॉक्यूमेंट = कर्सर.नेक्स्ट () फ्रूट फ्रूट = न्यू फ्रूट () फ्रूट.सेटनाम (डॉक्यूमेंट.गेटस्ट्रिंग ('नाम')) फ्रूट.सेटडेसक्रिप्शन (डॉक्यूमेंट .getString) (विवरण) ')) list.add (फल)}}} अंत में {कर्सर.close ()} वापसी सूची} सार्वजनिक शून्य जोड़ें (फल फल) {दस्तावेज़ दस्तावेज़ = नया दस्तावेज़ () .append (' नाम ', fruit.getName ()) .append ('विवरण', fruit.getDescription ()) getCollection ()। InsertOne (डॉक्यूमेंट)} प्राइवेट MongoCollection getCollection () {रिटर्न mongoClient.getDesasia ('fruit') getCollection। lection ('फल')}} अब हमें अपनी आवश्यकताओं के अनुरूप org.acme.rest.json.FruitResource क्लास संपादित करनी होगी। ऐसा करने के लिए, नीचे दिए गए कोड का उपयोग करें। @Path ('/ फल') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSON) सार्वजनिक वर्ग FruitResource {@Inject FruitService fruitervice सेवा @GET सार्वजनिक सूची () {return fruitService.list ()} @PST सार्वजनिक सूची जोड़ें (फलों का फल) {fruitService.add (फल) वापसी सूची ()}}

चरण 3 के साथ आगे बढ़ना।

चरण # 3: mongoDb डेटाबेस को कॉन्फ़िगर करना

MongoDb डेटाबेस को कॉन्फ़िगर करने के लिए सिंटैक्स के साथ-साथ मानक कोड नीचे दिया गया है।

# दो नोड्स quarkus.mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017 का प्रतिकृति सेट के लिए mongoDB क्लाइंट कॉन्फ़िगर करें

हमारे मामले में, हम डेटाबेस को कॉन्फ़िगर करने के लिए निम्न कोड का उपयोग करेंगे।

# दो नोड्स क्वार्कस.mongodb.connection-string = mongodb: // localhost: 27017 की प्रतिकृति सेट के लिए mongoDB क्लाइंट कॉन्फ़िगर करें

चरण 4 के साथ आगे बढ़ना।

चरण # 4: कॉन्फ़िगर किए गए MongoDB डेटाबेस को चलाना

अगला कदम हमारे द्वारा बनाए गए MongoDB डेटाबेस को चलाना है। ऐसा करने के लिए, नीचे दिए गए कोड का उपयोग करें।

docker run -ti --rm -p 27017: 27017 mongo: 4.0

चरण 5 के साथ आगे बढ़ना।

चरण # 5: सामने का छोर बनाना

अब जब एप्लिकेशन के बैकएंड पर सभी काम हो गए हैं, तो आइए एक नज़र डालते हैं कि हमारे एप्लिकेशन के फ्रंट एंड को कोड करने के लिए किस कोड का उपयोग किया जाता है।

पैकेज org.acme.rest.json import io.quarkus.mongodb.ReactiveMongoClient आयात io.quarkus.mongodb.eactiveMongoCollection आयात org.bsark.Document आयात javax.enterprise.context.Application.coped आयात javax.in। import java.util.concurrent.CompletionStage @ApplicationScoped public class ReactiveFruitService {@Inject ReactiveMongoClient mongoClient पब्लिक कंप्लीशनस्टेज लिस्ट () ({रिटर्न getCollection () मिलेंगे।) (मैप - doc -> {फ्रूट फ्रूट) = # फ्रूट = फ्रूट = नया फल। doc.getString ('नाम')) fruit.setDescription (doc.getString ('विवरण')) वापसी फल})। tolist ()। run ()} public CompletionStage add (फल फल) / दस्तावेज़ दस्तावेज़ = नया दस्तावेज़ ()। .append ('नाम', fruit.getName ()) .append ('विवरण', fruit.getDescription ()) रिटर्न getCollection ()। InsertOne (डॉक्यूमेंट)} Private ReactiveMongoololionion getCollection () {रिटर्न mongoClient.getDatabase (फल)। ) .getCollection ('fruit')}} package org.acme.rest.json import javax.inject.Inject इंपोर्ट javax.ws.rs। * i। mport javax.ws.rs.core.edia.MypeType import java.util। लिस्ट आयात java.util.concurrent.CompletionStage @Path ('/ reactive_fruit') @Produces (MediaType.APPLICATION_JSON) @Consumes (MediaType.APPLICATION_JSONS) @ Inject ReactiveFruitService fruitService @GET सार्वजनिक कंप्लीटस्टेज सूची () {return fruitService.list ()} @POST पब्लिक कंप्लीशनस्टेज ऐड (फलों का फल) {fruitService.add (फलों की वापसी सूची ())}

उपरोक्त उदाहरण में, हम इसका उपयोग कर रहे हैं एक प्रतिक्रियाशील mongoDb ग्राहक सामने के अंत के गठन की सुविधा के लिए।

चरण 6 के साथ आगे बढ़ना।

चरण # 6: BSON कोडेक का उपयोग करके mongoDb क्लाइंट को सरल बनाना

ऐसा करने के लिए, नीचे दिए गए कोड का उपयोग करें।

पैकेज org.acme.rest.json.codec आयात com.mongodb.MongoClient आयात org.acme.rest.json.Fruit आयात org.bson। * आयात org.bson.codecs.Codec आयात org.bson.codecs.CollectibleCodec आयात ऑर्गन आयात। । )} @Override public void encode (BsonWriter राइटर, फ्रूट फ्रूट, एनकोडरकोटेक्स्ट एनकोडरकोटेक्स्ट) {डॉक्यूमेंट doc = नया डॉक्युमेंट () doc.put ('नाम', fruit.getfame ()) doc.put ('डिस्क्रिप्शन'), fruit.getDescription ()) documentCodec.encode (लेखक, डॉक्टर, एनकोडरकोटेक्स्ट)} @ ऑवरराइड पब्लिक क्लास getEncoderClass () {Return Fruit.class} @Override public Fruit generateIdIAbsentFromDocument (फ्रूट डॉक्यूमेंट) {if (डॉक्यूमेंटहैसिड) (डॉक्यूमेंट) {डॉक्यूमेंट}! UUID.randomUUID () .String ())} दस्तावेज़ लौटाएँ} @Override सार्वजनिक बूलियन दस्तावेज़HasId ( फ्रूट डॉक्यूमेंट) {return document.getId ()! = Null} @Override public BsonValue getDocumentId (फ्रूट डॉक्यूमेंट) {new bsonString (document.getId ())} @Orride पब्लिक फ्रूट डिकोड (BsonReader Reader, DecoderContext decoderContext) {डॉक्यूमेंट = documentCodec.decode (रीडर, डिकोडर कॉन्टेक्स्ट) फ्रूट फ्रूट = नया फ्रूट () अगर (डॉक्यूमेंट.गेटस्ट्रिंग ('id')! = null) {fruit.setId (document.getString ('id'))}} fruit.setName (डॉक्यूमेंट) .getString ('नाम')) fruit.setDescription (document.getString ('विवरण')) फल लौटें}

अब हम इसे पहले से मौजूद फ्रूट क्लास से लिंक करने के लिए एक CodecProvider का उपयोग करेंगे।

पैकेज org.acme.rest.json.codec import org.acme.rest.json.Fruit import org.bson.codecs.Codec import org.bson.codecs.configuration.CodecProvec आयात आयात org.bson.codecs.configuration.CodecRegistry सार्वजनिक श्रेणी FruitCodecProvider कोडेक्स कोडप्रोविडर {@ ऑवरराइड पब्लिक कोडेक प्राप्त करता है (क्लास क्लैज, कोडेकेजिस्ट्री रजिस्ट्री) {if (clazz == Fruit.class) {return (कोडेक) नए फ्रूटकोडेक ()} रिटर्न null}}

चरण 7 के साथ आगे बढ़ना।

चरण # 7: अंतिम कोड

इस एप्लिकेशन के लिए अंतिम कोड, कुछ इस तरह दिखाई देगा।

पैकेज org.acme.rest.json आयात com.mongodb.client.MongoClient आयात com.mongodb.client.MongoCollection आयात com.mongodb.client.MongoCursor आयात आयात javax.enterprise.context.ApplicationScoped आयात javax.inject.Injectava आयात करें। .ArrayList आयात java.util.List @ApplicationScoped सार्वजनिक वर्ग CodecFruitService {@Inject MongoClient mongoClient सार्वजनिक सूची सूची () {सूची सूची = नई ArrayList () MongoCursor कर्सर = getCollection () (खोज) (इट्रेटर) (कर्सर) की कोशिश करें। .hasNext ()) {list.add (कर्सर.next ())}} अंत में {RPG.close ()} रिटर्न लिस्ट} public void add (फ्रूट फ्रूट) {getCollection ()। InsertOne (फ्रूट)} Private MongoCollection getCollection ()। ) {वापसी mongoClient.getDatabase ('फल')। GetCollection ('फल', Fruit.class)}}

निष्कर्ष

अब आप जानते हैं कि अपने सिस्टम में MongoDB क्लाइंट को कैसे कॉन्फ़िगर और उपयोग करना है। आगे बढ़ो और अपने सिस्टम में इन कोड्स को आज़माएं और हमें अपना अनुभव बताएं।

लेख सारांश

MongoDB क्लाइंट के बारे में सभी जानें और आप विभिन्न उपयोगों के लिए अपने सिस्टम में समान कैसे कॉन्फ़िगर कर सकते हैं। अधिक जानने के लिए पढ़े।

इसके साथ, हम अंत तक आते हैं ' MongoDB ग्राहक ' लेख।