इसे सुलझा लिया!तो, मैंने क्या किया है:
-
मैंने केवल driver3.6 . के माध्यम से टियर क्लस्टर से कनेक्ट करने का प्रयास किया और लिखा
mongodb+srv://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true
मुझे हमेशा एक त्रुटि मिलती है: Connection strings must start with 'mongodb://'
।
-
ठीक है, मैंने
+srv
स्निपेट मिटा दिया है और उसी तरह लिखाmongodb://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true
और फिर से त्रुटि प्राप्त करें:
com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=cluster0-ox90k.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: cluster0-ox90k.mongodb.net}, caused by {java.net.UnknownHostException: cluster0-ox90k.mongodb.net}}]
तो, मैंने driver3.4 या इससे पहले . के माध्यम से लिखा था पसंद है
mongodb://user:<PASSWORD>@cluster0-shard-00-00-ox90k.mongodb.net:27017,cluster0-shard-00-01-ox90k.mongodb.net:27017,cluster0-shard-00-02-ox90k.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true
और अंत में यह हल हो गया।
नोट:आप अपने जावा ड्राइवर को '3.4 या बाद के संस्करण' पर सेट करके एटलस प्रबंधन कंसोल से यह कनेक्शन स्ट्रिंग प्राप्त कर सकते हैं। यह आपको स्वयं कनेक्शन स्ट्रिंग के साथ आने से बचने में मदद करेगा।
अपडेट किया गया: यदि आप ड्राइवरों का उपयोग करना चाहते हैं 3.7+
, आपको प्रारूप कनेक्शन के बजाय लिखना होगा (और ऊपर मेरी समस्याओं से बचने के लिए)
MongoClientURI uri = new MongoClientURI("mongodb+srv://admin:[email protected]/test?retryWrites=true");
MongoClient mongoClient = new MongoClient(uri);
MongoClients.create()
. का उपयोग करते हुए एक अन्य प्रकार (3.7 रिलीज के अनुसार), और जैसा कि यहां बताया गया है:
MongoClient mongoClient = MongoClients.create("mongodb+srv://admin:[email protected]/test?retryWrites=true");
नोट: पासवर्ड लिखने की जरूरत नहीं है जैसे mongodb://user:<mypassword>@...
,
बस प्रारूप में mongodb://user:[email protected]
ब्रेसिज़ के बिना <>
।