मैं केवल देख सकता था कि कोड शुरू हुआ, फिर कुछ नहीं
जैसा कि आपको पता चल गया है, ऐसा इसलिए है क्योंकि DialInfo डिफ़ॉल्ट रूप से एक शून्य समयबाह्य है। कनेक्शन स्थापित होने की प्रतीक्षा में कॉल हमेशा के लिए ब्लॉक हो जाएगी। आप इसके साथ एक टाइमआउट भी निर्दिष्ट कर सकते हैं:
dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo(dialInfo)
<ब्लॉकक्वॉट> अब मुझे कोई पहुंच योग्य सर्वर नहीं मिल रहा है
ऐसा इसलिए है क्योंकि ग्लोबलसाइन/एमजीओ वर्तमान में एसआरवी कनेक्शन स्ट्रिंग यूआरआई का समर्थन नहीं करता है। 112 मुद्दे देखें। आप गैर-एसआरवी कनेक्शन यूआरआई प्रारूप (मोंगोडीबी v3.4) का उपयोग कर सकते हैं, एक संबंधित प्रश्न देखें स्टैक ओवरफ्लो:41173720।
यदि आप SRV कनेक्शन URI का उपयोग करके कनेक्ट करना चाहते हैं, तो आप इसके बजाय mongo-go-driver का उपयोग कर सकते हैं, उदाहरण के लिए:
mongoURI := "mongodb+srv://admin:[email protected]/dbname?ssl=true&retryWrites=true"
client, err := mongo.NewClient(options.Client().ApplyURI(mongoURI))
if err != nil {
log.Fatal(err)
}
ctx, cancel := context.WithTimeout(context.Background(), 3*time.Second)
defer cancel()
err = client.Connect(ctx)
defer client.Disconnect(ctx)
if err != nil {
log.Fatal(err)
}
database := client.Database("go")
collection := database.Collection("atlas")
उपरोक्त उदाहरण वर्तमान संस्करण v1.0.0 के साथ संगत है