Maison >développement back-end >Golang >Comment connecter MongoDB en Go en utilisant Atlas ?
éditeur php Apple vous présentera comment utiliser Atlas pour vous connecter à MongoDB en langage Go. Atlas est le service d'hébergement cloud officiel de MongoDB, fournissant une solution de base de données distribuée fiable. Grâce à Atlas, vous pouvez facilement vous connecter à MongoDB en langage Go et effectuer des opérations de lecture et d'écriture de données. Ce qui suit vous présentera en détail les étapes spécifiques et la mise en œuvre du code, afin que vous puissiez mieux maîtriser les compétences d'utilisation d'Atlas pour vous connecter à MongoDB dans le langage Go. Apprenons avec l'éditeur !
J'ai un problème de délai d'expiration de sélection de serveur lors de la connexion à mongodb. Toute aide serait grandement appréciée.
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
Le code que j'ai utilisé pour me connecter
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` }
J'héberge mon cluster d'atlas de test sur AWS, j'aimerais donc avoir une gestion des informations d'identification similaire à celle du processus AWS. Depuis la page d'informations d'identification AWS :
La chaîne de fournisseurs par défaut recherche les informations d'identification dans l'ordre suivant :
Je souhaite donc implémenter un environnement vérifiable pour une connexion simple pour mon exemple d'atlas. Le code ci-dessous suppose que les lignes suivantes ont été émises sur la ligne de commande
export mongo_pw=''
Ensuite, la procédure suivante vérifiera votre connexion
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!") }
À partir de là, le reste du tutoriel lié à ma question d'origine se déroulera sans problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!