MongoDB'yi Golang ile Nasıl Bağlarsınız?

Mongodb Yi Golang Ile Nasil Baglarsiniz



Tıpkı C dili gibi, Golang dili de kayıt oluşturmak için Windows ve Linux/Unix sistemlerindeki birçok araçta çalıştırılabilen açık kaynaklı bir dildir. C++ ve Java gibi, herhangi bir golang aracını kullanarak bir MongoDB istemci sistemi ile Go dili arasında bağlantı kurabiliriz. Bunu yapmak için, bir program için Visual Studio kod aracını kullanarak Ubuntu 22.04'te çok önemli ve gerekli birkaç adımı gerçekleştireceğiz. MongoDB pusulası ile bağlantı kurmadan önce, Go dilinde size yardımcı olmak için kılavuzdaki “go” ve gerekli uzantılarla birlikte MongoDB ve Visual Studio Code'u yükleme eğilimindeyiz.

MongoDB'yi kurun

MongoDB sunucusunun “deb” paketini resmi sitesinden indirdik. 'Deb' paketi, Terminal'deki 'dpkg' komut aracı kullanılarak Ubuntu'da da yürütülebilir.







Terminaldeki MongoDB sunucu dosyasını “sudo” haklarıyla çalıştırdı ve bir şifre sağladı.



saeedraza@virtualbox:~$ sudo dpkg -i mongodb-org-server_6.0.3_amd64.deb


Durumu kontrol etmek için Ubuntu'nun “systemctl” talimatını denedikten sonra sonunda MongoDB hizmetini devre dışı bulduysanız, onu da güncelleyebilirsiniz. MongoDB'yi etkinleştirmek için, systemctl talimatını 'start' ve 'enable' anahtar sözcükleriyle deneyin.

saeedraza@virtualbox:~$ sudo systemctl mongod'u başlat
saeedraza@virtualbox:~$ sudo sistemctl etkinleştirme mongod
saeedraza@virtualbox:~$ sudo systemctl durumu mongod

MongoDB'yi başlatın

Yüklemeden sonra, 'mongo' sorgusunu kullanarak MongoDb kabuğunu hızla başlatın. İlerleyen adımları gerçekleştirmek için “admin” veri tabanına geçin.

saeedraza@virtualbox:~$ mongo
MongoDB kabuk sürümü v5.0.14
bağlantı: mongodb: // 127.0.0.1: 27017 / ? kompresörler = devre dışı & gssapiHizmetAdı =mongodb
Örtük oturum: oturum { 'İD' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB sunucu sürümü: 6.0.3


createUser() fonksiyonunu kullanarak yönetici haklarına sahip yeni bir kullanıcı yaratıyoruz.

> yönetici kullan
db admin'e geçti
> db.createUser (
... {
... kullanıcı: 'Said' ,
... bilgi: '12345' ,
... roller: [ { rol: 'userAdminAnyDatabase' , veritabanı: 'yönetici' } , 'readWriteAnyDatabase' ]

... } )
Kullanıcı başarıyla eklendi: {
'kullanıcı' : 'Said' ,
'roller' : [
{
'rol' : 'userAdminAnyDatabase' ,
'db' : 'yönetici'
} ,
'readWriteAnyDatabase'
]
}


'Auth' işlevindeki kimlik bilgilerini kullanarak 'Saeed' kullanıcısına yetki verdi ve MongoDB'nin şu anda sahip olduğu veritabanlarını görüntüledi.

> db.auth ( 'Saeed' , '12345' )
bir
> dbs'yi göster
yönetici   0,000 GB
yapılandırma  0,000 GB
yerel 0.000 GB

Golang için MongoDB Sürücüsünü Kurun

Terminali Visual Studio Code'da açın ve kaynak kod dosyalarınızı eklemek istediğiniz 'Golang' klasörü içinde hareket edin. Bir 'go.mod' dosyası oluşturmak için 'go mod init' talimatını klasör adıyla çalıştırın. Go dili için MongoDB sürücüsünü 'go get' sorgusu aracılığıyla yükleyin.

saeedraza@virtualbox:~/Golang$ mod golang'ı başlat


Bazı durumlarda, Golang için de bson formatındaki MongoDB sürücüsünün yüklenmesi gerekir.

saeedraza@virtualbox:~/Golang$ go.mongodb.org'u edinin / mongo sürücüsü / bson


Herhangi bir talimat kullanmadan Extensions panelini kullanarak Visual Studio kodunda 'gopls' gibi gerekli uzantı paketlerini eklediğinizden emin olun.


'Gopls' ile birlikte Golang, 'dlv' aracının kesinlikle yüklenmesini gerektirebilir.

Devam Kodu Örneği

“main.go” kod dosyası, bağlantı için tüm kodda kullanılacak bazı faydalı paketlerin içe aktarılmasıyla başlatıldı. Buraya toplam 7 ithalat yapılmıştır. Paketleri içe aktardıktan sonra, içinde 4 JSON tipi veri üyesi bulunan MongoField adlı yeni bir yapı oluşturduk. Bu veri üyelerinden 2 tanesi string, 2 tanesi tam sayıdır.

Bundan sonra bir client adresi ile sabit tipte bir değişken “uri” tanımlandı ya da kullanıcı adı ve şifreye göre localhost adresinizi buna eklemeniz gerekiyor. main() işlevleri, bir 'mongo' nesnesi aracılığıyla MongoDB'ye bağlanmak için Golang'ın connect() işlevinin kullanılmasıyla başlar. ApplyURI() işlevi, bir ana bilgisayar adresi üzerinden bir bağlantı kurulabilmesi için Client() işlevine uygulanacak bağımsız değişkeni olarak “uri” değişkenini alacaktır. Bağlam paketi, bağlantı istemek için TODO() işlevini çağırmak için ana rolü oynuyor. Visual Studio kodu ile MongoDB arasında başarılı bir şekilde bağlantı kurulursa, müşteri tarafından döndürülen sinyal “client” değişkenine eklenir; aksi halde hata “err” değişkeninde saklanacaktır.

“İf” ifadesi, mesajları buna göre görüntülemek için buradadır. Eğer “err” değişkeni “nil”den farklı bir değer aldıysa, “fmt” format paketindeki Println() fonksiyonu terminal çıktı ekranında bu hatayı yazdıracaktır. Hata oluşursa programdan çıkmak için “os” paketi kullanılacaktır. Bağlam paketi yine bu program üzerinden kurulacak bağlantının zaman aşımını yönetmek için burada kullanılır. Belirli zaman aşımı değeri “ctx” için programımız çalışıyor olacaktır. Golang aracılığıyla MongoDB istemcisinde yeni bir 'Yeni' veritabanıyla birlikte yeni bir 'Kişi' koleksiyonu oluşturulacaktır. Println(), Reflect paketinden 'TypeOf' işlevini kullanarak 'c' koleksiyonunun türünü gösterecek.

MongoField data üyeleri burada birer birer ilklendirilen yapı kullanılarak bir “Rec” kaydı oluşturulmuştur. Kayıt türü görüntülendi ve 'Rec' kaydı, 'c' toplama nesnesiyle insertOne işlevi kullanılarak istemci MongoDB'ye eklenecek. Başarılı ekleme, 'insertErr' değişkeni başarısızlık değerini tutarken başarı değerini tutan bir 'sonuç' değişkenine yol açar. Sadece “insertErr” değişkeni “nil” değerinden farklı bir değer tutuyorsa, kayıt eklemede hatayı kontrol etmek ve görüntülemek için tekrar “if” ifadesi kullanılır. Aksi takdirde, ifadenin 'else' kısmı, eklenecek kaydın türünü, kayıt kimliğini ve gerçekleşen bağlantı ve ekleme için başarı mesajını görüntülemek için bazı Println() ifadelerini tutacaktır. Golang kodu artık tamamlandı.

ana paket
içe aktarmak (
'bağlam'
'fmt'
'sen'
'yansıtmak'
'zaman'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
tip MongoField yapısı {
Ad   dizesi ` json: 'Alan Sokağı' `
E-posta  dizesi ` json: 'Alan Sokağı' `
Yaş    int ` json: 'Alan Uluslararası' `
Maaş int ` json: 'Alan Uluslararası' `
}
const uri = “mongodb: // Kullanıcı şifresi @ yerel ana bilgisayar: 27017 / ? maxHavuzBoyutu = yirmi & içinde = çoğunluk”
ana işlev ( ) {
istemci, hata := mongo.Connect ( bağlam.TÜMÜ ( ) ,seçenekler.İstemci ( ) .UygulaURI ( tip ) )
Eğer hata ! = sıfır {
fmt.Println ( 'Mongo.connect() hatası: ' , hata )
os.Çıkış ( bir )
}
ctx, _ := bağlam.WithTimeout ( bağlam.Arka Plan ( ) , on beş * zaman.İkinci )
c := client.Database ( 'Yeni' ) .Toplamak ( 'Kişi' )
fmt.Println ( 'Koleksiyon Türü: ' , Reflect.TypeOf ( c ) , ' \n ' )
Kayıt := MongoField {
İsim: 'EDEN' ,
E-posta: 'eden@gmail.com' ,
Yaş: Dört beş ,
Maaş: 50000 }
fmt.Println ( 'Kayıt tipi: ' , Reflect.TypeOf ( kayıt ) , ' \n ' )
sonuç, insertErr := c.InsertOne ( ctx, Kayıt )
Eğer ekleHata ! = sıfır {
fmt.Println ( 'InsertOne Hatası: ' , eklemekHata )
os.Çıkış ( bir )
} Başka {
fmt.Println ( 'InsertOne sonuç türü: ' , Reflect.TypeOf ( sonuç ) )
yeniKimlik = sonuç.EklenenKimlik
fmt.Println ( 'Eklenen Kayıt Kimliği: ' , yeni kimlik ) )
fmt.Println ( 'Başarıyla Bağlandı ve Kayıtlar Eklendi!' )
} }


Golang kodunu kaydedin ve terminali Golang klasörü içinde açın. Şimdi, “main.go” kod dosyasını çalıştırmak için “run” anahtar sözcüğü ile “go” komutunu kullanın. Hata ayıklama başarılı oldu ve MongoDB'de 'Kişi' koleksiyonu başarıyla oluşturuldu. Çıktı toplama tipini, kayıt tipini, sonuç tipini ve bir kaydın “kimliğini” gösteriyor.

saeedraza @ sanal kutu:~ / Golang$ Git Çalıştır Main.go
Koleksiyon Türü: * mongo.Koleksiyon
Kayıt Türü: main.MongoField
InsertOne sonuç türü: * mongo.InsertOneResult
Eklenen Kayıt Kimliği: ObjectID ( “63a8535ac97b4218230664b6” )
Başarıyla Bağlandı ve Kayıtlar Eklendi.


Sonunda “MongoDB” pusulasını açın ve “URI” kullanarak yerel ana bilgisayarına bağlanın.


“Yeni” veri tabanı içerisinde ilerledikten sonra eklediğimiz kayıt ile birlikte “Belgeler” bölümünde “Kişi” koleksiyonunu gördük.

Çözüm

Bu kılavuz, Linux sistemindeki bir Visual Studio Code aracını kullanarak MongoDB istemcisine kayıt eklemek için Go dilinin kullanımını göstermektedir. Bunun için sisteme “golang” için mongodb sürücüsü ile birlikte mongodb kurduk. Bir Golang dili kullanarak MongoDB'de bir 'go' dosyası oluşturduk ve MongoDB ile bağlantı oluşturmak ve kayıt eklemek için Golang'ın çeşitli paketlerini ve işlevlerini tartıştık. Sonunda, herhangi bir Golang aracını MongoDB'ye bağlayabileceğinizi gösteren sonuçları MongoDB pusulasında gösterdik.