MongoDB में कई प्रोग्रामिंग भाषाओं के लिए एक व्यापक ड्राइवर सेट है। निम्नलिखित ट्यूटोरियल में, हम आपको इसके स्काला ड्राइवर का उपयोग करके MongoDB से कनेक्ट होने की विभिन्न बारीकियों को दिखाएंगे।
चालक स्थापना
MongoDB के Scala ड्राइवर को निम्न निर्भरता का उपयोग करके आपके प्रोजेक्ट में जोड़ा जा सकता है -
<निर्भरता> org.mongodb mongo-scala-driver 1.0.1
आप MongoDB Scala ड्राइवर को उसके github पेज से भी डाउनलोड कर सकते हैं।
MongoDB के लिए Scala ड्राइवर, जैसे Java, MongoDB इंस्टेंस से कनेक्शन की सुविधा के लिए कई वर्गों के साथ आता है।
MongoDB के लिए स्काला ड्राइवर, जावा की तरह, MongoDB उदाहरण के लिए कनेक्शन की सुविधा के लिए कई वर्गों के साथ आता है। ट्वीट करने के लिए क्लिक करेंआइए यह कदम दर कदम उठाएं:
कनेक्शन
मोंगो क्लाइंट का उपयोग करके मोंगोडीबी इंस्टेंस से कनेक्शन स्थापित किया जा सकता है। MongoClient एक वर्ग है जिसका उपयोग MongoDB से कनेक्शन प्रबंधित करने के लिए किया जा सकता है। कनेक्शन बनाने का सबसे आसान तरीका होगा -
वैल क्लाइंट:MongoClient=MongoClient(":27017")
कनेक्शन स्ट्रिंग में प्रमाणीकरण, पोर्ट नंबर आदि जैसे विकल्प सेट किए जा सकते हैं। उदाहरण के लिए, एक रेप्लिका सेट विकल्प को /?replicaSet=rs0
. के रूप में सेट किया जा सकता है . विकल्पों की पूरी सूची के लिए कनेक्शन स्ट्रिंग यूआरआई विकल्प पर जाएं।
वैकल्पिक रूप से, एक MongoClientSettings() वर्ग का उपयोग Mongo क्लाइंट के व्यवहार को नियंत्रित करने के लिए किया जा सकता है। Mongoclientsettings वर्ग में क्लस्टर सेटिंग्स जोड़ने के लिए क्लस्टर सेटिंग्स वर्ग का उपयोग किया जाता है। इन तीन वर्गों का उपयोग करके एक साधारण कनेक्शन इस प्रकार हो सकता है -
वैल क्लस्टरसेटिंग्स:ClusterSettings=ClusterSettings.builder().hosts(List(newServerAddress("mongodb2.example.com:27345"),newServerAddress("mongodb1.example.com:20026")).asJava).build( )वैल सेटिंग्स:<MongoClientSettings=MongoClientSettings.builder().clusterSettings(clusterSettings)).build()val mongoClient:MongoClient=MongoClient(settings)
डिफ़ॉल्ट रूप से कनेक्शन आपके सिस्टम JDK से एसिंक्रोनससॉकेटचैनल का उपयोग करता है, यदि आप एसएसएल का उपयोग कर रहे हैं या 1.7 से पहले का जेडीके संस्करण है, तो आपको एसएसएल अनुभाग में बताए अनुसार नेट्टी का उपयोग करना होगा।
एसएसएल
SSL का उपयोग करके MongoDB से आपका कनेक्शन सुरक्षित किया जा सकता है। हमारा अन्य ब्लॉग पोस्ट 'एसएसएल के साथ क्लस्टर सुरक्षित करना' एसएसएल के महत्व का वर्णन करता है।
MongoDB सर्वर द्वारा प्रस्तुत प्रमाण पत्र को मान्य करने के लिए आपको सिस्टम के ट्रस्ट स्टोर में हस्ताक्षर करने वाले प्राधिकरण CA को जोड़ना होगा।
इस उद्देश्य के लिए एसिंक्रोनस सॉकेट चैनल के बजाय नेट्टी लाइब्रेरी का उपयोग करने के लिए आपको ड्राइवर के लिए गुण जोड़ने की भी आवश्यकता होगी। आपको नेट्टी जार डाउनलोड करने और उन्हें अपनी वर्तमान परियोजनाओं में जोड़ने की आवश्यकता होगी क्योंकि स्कैला निर्भरता इसे डाउनलोड नहीं करती है। आपको निम्नलिखित आयात विवरणों की भी आवश्यकता होगी -
आयात org.mongodb.scala.connection.{NettyStreamFactoryFactory,SslSettings}
SSL का उपयोग करके MongoDB से कनेक्शन निम्नानुसार किया जा सकता है -
वैल सेटिंग्स:MongoClientSettings=MongoClientSettings.builder().clusterSettings(clusterSettings).sslSettings(SslSettings.builder().enabled(true).build()).streamFactoryFactory(NettyStreamFactoryFactory()).build()
यदि आपको सर्वर से कनेक्ट करने में समस्या आ रही है, तो आपके सर्वर के SSL प्रमाणपत्र पर होस्ट नाम उस नाम से भिन्न हो सकता है जिसे आपने MongoClient बनाते समय निर्दिष्ट किया था। आप इस सेटिंग का उपयोग करके अक्षम कर सकते हैं। .invalidHostNameAllowed(true)
आपकी एसएसएल सेटिंग्स में।
प्रमाणीकरण
आप अपनी MongoClientSettings में क्रेडेंशियल जोड़ने के लिए MongoCredential वर्ग का उपयोग कर सकते हैं। MongoCredentials वर्ग का एक विशिष्ट उपयोग इस प्रकार होगा -
वैल सेटिंग्स:MongoClientSettings =MongoClientSettings.builder().clusterSettings(clusterSettings).credentialList(credential).sslSettings(SslSettings.builder().enabled(true).build()).streamFactoryFactory(NettyStreamFactoryFactory()).build ()
ध्यान दें कि जब आपने क्लस्टर सेटिंग्स में एक से अधिक होस्ट जोड़े हैं तो आप अपने क्रेडेंशियल्स को एक सूची के रूप में जोड़ सकते हैं। उदाहरण के लिए, आप List(credential1,credential2).asJava
दो मेजबानों के लिए।
स्काला में एसएसएल के साथ प्रतिकृति सेट से कनेक्ट करने के लिए यहां सभी को एक साथ रखकर पूरा कोड है -
आयात करें। org.mongodb.scala.connection.ClusterSettingsimport com.mongodb.MongoCredential._import java.util.logging.{Level, Logger}import org.mongodb.scala.connection.{NettyStreamFactoryFactory,SslSettings} scala.collection.JavaConverters आयात करें। def main(args:Array[String]):Unit ={val mongoLogger:Logger =Logger.getLogger("com.mongodb")mongoLogger.setLevel(Level.SEVERE);वैल क्लस्टरसेटिंग्स:ClusterSettings =ClusterSettings.builder().hosts (सूची (नया सर्वर एड्रेस ("example.com:27345"), नया सर्वर एड्रेस ("example.com:20026"))। asJava)। बिल्ड () वैल उपयोगकर्ता:स्ट्रिंग ="टेस्ट्यूसर" वैल डेटाबेसनाम:स्ट्रिंग ="स्केलेस्ट" वैल पासवर्ड:ऐरे [चार] ="<एक पासवर्ड दर्ज करें>"। toCharArrayval क्रेडेंशियल:MongoCredential =createCredent ial(उपयोगकर्ता, डेटाबेसनाम, पासवर्ड)वैल सेटिंग्स:MongoClientSettings =MongoClientSettings.builder().clusterSettings(clusterSettings).credentialList(List(credential,credential).asJava).sslSettings(SslSettings.builder().enabled(true).build ()).streamFactoryFactory(NettyStreamFactoryFactory()).build()val mongoClient:MongoClient =MongoClient(settings)val डेटाबेस:MongoDatabase =mongoClient.getDatabase("scalatest")mongoClient.close()}}आपके कनेक्शन का परीक्षण
स्काला ड्राइवर आरंभ करना पृष्ठों में उदाहरण हैं कि आप अपने कनेक्शन का परीक्षण कैसे कर सकते हैं।
संदर्भ:
MongoDB का उपयोग करके स्कैला के साथ शुरुआत करना
मोंगो स्काला एपीआई
अगर आपको इसके स्काला ड्राइवर का उपयोग करके MongoDB से कनेक्ट करने में कोई समस्या है तो हमें बताएं। हम आपकी सभी MongoDB आवश्यकताओं के लिए प्रबंधित विकल्प प्रदान करते हैं।