Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menyambung mongodb dalam go menggunakan atlas?
editor php Apple akan memperkenalkan anda cara menggunakan Atlas untuk menyambung ke MongoDB dalam bahasa Go. Atlas ialah perkhidmatan pengehosan awan rasmi MongoDB, menyediakan penyelesaian pangkalan data teragih yang boleh dipercayai. Melalui Atlas, anda boleh menyambung dengan mudah ke MongoDB dalam bahasa Go dan melaksanakan operasi membaca dan menulis data. Perkara berikut akan memperkenalkan anda kepada langkah khusus dan pelaksanaan kod secara terperinci, supaya anda boleh menguasai kemahiran menggunakan Atlas untuk menyambung ke MongoDB dalam bahasa Go dengan lebih baik. Mari belajar dengan editor!
Saya menghadapi masalah tamat masa pemilihan pelayan semasa menyambung ke mongodb. Sebarang bantuan amatlah dihargai.
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
Kod yang saya gunakan untuk sambungkan
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` }
Saya menganjurkan kluster atlas ujian saya pada aws jadi saya ingin mempunyai pengurusan kelayakan yang serupa dengan proses aws. Dari halaman kelayakan aws:
Rangkaian pembekal lalai mencari bukti kelayakan dalam susunan berikut:
Jadi saya ingin melaksanakan persekitaran yang boleh disahkan untuk log masuk mudah untuk contoh atlas saya. Kod di bawah menganggap bahawa baris berikut telah dikeluarkan pada baris arahan
export mongo_pw=''
Kemudian prosedur berikut akan mengesahkan sambungan anda
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!") }
Dari sini selebihnya tutorial yang dipautkan dalam soalan asal saya akan mengalir dengan lancar.
Atas ialah kandungan terperinci Bagaimana untuk menyambung mongodb dalam go menggunakan atlas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!