Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk menyambung mongodb dalam go menggunakan atlas?

Bagaimana untuk menyambung mongodb dalam go menggunakan atlas?

WBOY
Lepaskan: 2024-02-09 20:36:20
ke hadapan
677 orang telah melayarinya

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!

Kandungan soalan

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
Salin selepas log masuk

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`
}
Salin selepas log masuk

Penyelesaian

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:

  1. Pembolehubah persekitaran.
  2. Kongsi fail kelayakan.
  3. Jika aplikasi anda berjalan pada contoh amazon ec2, peranan iam untuk amazon ec2.

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='<您的atlas管理员用户密码>'

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!")
}
Salin selepas log masuk

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!

Label berkaitan:
sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan