sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man använder ny URL från mongodb 3.6 för att ansluta från golang

Jag kunde bara se att koden startade, sedan ingenting

Som du har räknat ut beror detta på att DialInfo som standard har noll timeout. Samtalet blockeras för alltid och väntar på att en anslutning upprättas. Du kan också ange en timeout med:

dialInfo.Timeout = time.Duration(30)
session, err := mgo.DialWithInfo(dialInfo)

Nu får jag inga nåbara servrar

Detta beror på att globalsign/mgo för närvarande inte stöder SRV-anslutningssträng-URI ännu. Se problem 112. Du kan använda URI-formatet utan srv-anslutning (MongoDB v3.4), se en relaterad fråga StackOverflow:41173720.

Du kan använda mongo-go-driver istället om du vill ansluta med SRV-anslutningens URI, till exempel:

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")

Ovanstående exempel är kompatibelt med den aktuella versionen v1.0.0




  1. Hur hanterar jag MongoDB-anslutningar i en Node.js-webbapplikation?

  2. Redis pub/sub för chattserver i node.js

  3. För att starta YCSB-laddning med klusteraktiverat alternativ för REDIS

  4. Realtidskommunikation mellan app och webbsida