php-Editor Apple stellt Ihnen vor, wie Sie Atlas verwenden, um eine Verbindung zu MongoDB in der Go-Sprache herzustellen. Atlas ist der offizielle Cloud-Hosting-Dienst von MongoDB und bietet eine zuverlässige verteilte Datenbanklösung. Über Atlas können Sie problemlos eine Verbindung zu MongoDB in der Go-Sprache herstellen und Datenlese- und -schreibvorgänge durchführen. Im Folgenden werden Ihnen die spezifischen Schritte und die Code-Implementierung im Detail vorgestellt, damit Sie die Fähigkeiten zur Verwendung von Atlas für die Verbindung mit MongoDB in der Go-Sprache besser beherrschen können. Lernen wir mit dem Herausgeber!
Ich habe ein Problem mit der Zeitüberschreitung bei der Serverauswahl, wenn ich mich mit Mongodb verbinde. Jede Hilfe wäre sehr dankbar.
selection error: server selection timeout, current topology: { type: replicasetnoprimary, servers: [{ addr: ac-pjyudwq-shard-00-01.1bnb2bm.mongodb.net:27017, type: unknown, last error: dial tcp 3.6.207.111:27017: i/o timeout }, { addr: ac-pjyudwq-shard-00-00.1bnb2bm.mongodb.net:27017, type: unknown, last error: dial tcp 3.7.150.83:27017: i/o timeout }, { addr: ac-pjyudwq-shard-00-02.1bnb2bm.mongodb.net:27017, type: unknown, last error: dial tcp 3.7.137.42:27017: i/o timeout }, ] } exit status 1
Der Code, mit dem ich eine Verbindung hergestellt habe
const MONGOURL = "mongodb+srv://sai:[email protected]/?retryWrites=true&w=majority" var collection *mongo.Collection func init() { fmt.Println("in the init function") var databasename string = "GOAPI" var collectionname string = "Movies" client, err: = mongo.Connect(context.TODO(), options.Client().ApplyURI(MONGOURL)) if err != nil { fmt.Println("unable to get mongo connection ") log.Fatal(err) } collection = ( * mongo.Collection)(client.Database(databasename).Collection(collectionname)) fmt.Println("sucessfully collection is created ") doc: = Movie { Name: "rrr", Watched: false, Rating: 9, Id: "12121" } result, err: = collection.InsertOne(context.Background(), doc) if err != nil { log.Fatal("hey unable to insert one ", err) } fmt.Println("sucessfully added : ", result.InsertedID) // mongo.Connect()`your text` }
Ich hoste meinen Testatlas-Cluster auf aws, daher hätte ich gerne eine ähnliche Anmeldeinformationsverwaltung wie der aws-Prozess. Von der AWS-Anmeldeinformationsseite:
Die Standardanbieterkette sucht in der folgenden Reihenfolge nach Anmeldeinformationen:
Deshalb möchte ich für mein Atlas-Beispiel eine überprüfbare Umgebung für die einfache Anmeldung implementieren. Der folgende Code geht davon aus, dass die folgenden Zeilen in der Befehlszeile ausgegeben wurden
export mongo_pw='<您的atlas管理员用户密码>'
Dann überprüft das folgende Verfahren Ihre Verbindung
package main import ( "context" "fmt" "os" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) var username = "<username>" var host1 = "<atlas host>" // of the form foo.mongodb.net func main() { ctx := context.TODO() pw, ok := os.LookupEnv("MONGO_PW") if !ok { fmt.Println("error: unable to find MONGO_PW in the environment") os.Exit(1) } mongoURI := fmt.Sprintf("mongodb+srv://%s:%s@%s", username, pw, host1) fmt.Println("connection string is:", mongoURI) // Set client options and connect clientOptions := options.Client().ApplyURI(mongoURI) client, err := mongo.Connect(ctx, clientOptions) if err != nil { fmt.Println(err) os.Exit(1) } err = client.Ping(ctx, nil) if err != nil { fmt.Println(err) os.Exit(1) } fmt.Println("Connected to MongoDB!") }
Von hier aus wird der Rest des in meiner ursprünglichen Frage verlinkten Tutorials reibungslos ablaufen.
Das obige ist der detaillierte Inhalt vonWie verbinde ich Mongodb mit Atlas in Go?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!