Cara Menyambung MongoDB dengan Golang

Cara Menyambung Mongodb Dengan Golang



Sama seperti bahasa C, bahasa Golang juga merupakan bahasa sumber terbuka yang boleh dilaksanakan pada banyak alat pada sistem Windows dan Linux/Unix untuk mencipta rekod. Seperti C++ dan Java, kami boleh membuat sambungan antara sistem klien MongoDB dan bahasa Go menggunakan sebarang alat golang. Untuk melakukan ini, kami akan melaksanakan beberapa langkah yang sangat penting dan perlu dalam Ubuntu 22.04 dengan menggunakan alat kod Visual Studio untuk program. Sebelum membuat sambungan dengan kompas MongoDB, kami cenderung untuk memasang MongoDB dan Kod Visual Studio bersama 'pergi' dan sambungan yang diperlukan dalam panduan untuk membantu anda menggunakan bahasa Go.

Pasang MongoDB

Kami telah memuat turun pakej 'deb' pelayan MongoDB dari laman web rasminya. Pakej 'Deb' juga boleh dilaksanakan dalam Ubuntu menggunakan alat arahan 'dpkg' pada Terminal.







Melaksanakan fail pelayan MongoDB pada terminal dengan hak 'sudo' dan memberikan kod laluan.



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


Jika anda mendapati perkhidmatan MongoDB tidak aktif di hujung anda selepas mencuba arahan 'systemctl' Ubuntu untuk menyemak status, anda boleh mengemas kininya juga. Untuk mengaktifkan MongoDB, cuba arahan systemctl dengan kata kunci 'mula' dan 'dayakan'.

saeedraza@virtualbox:~$ sudo systemctl mula mongod
saeedraza@virtualbox:~$ sudo systemctl membolehkan mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Lancarkan MongoDB

Selepas pemasangan, lancarkan cangkerang MongoDb dengan cepat menggunakan pertanyaan 'mongo'. Beralih kepada pangkalan data 'admin' untuk melaksanakan langkah-langkah yang diteruskan.

saeedraza@virtualbox:~$ mongo
Versi cangkerang MongoDB v5.0.14
menyambung ke: mongodb: // 127.0.0.1: 27017 / ? pemampat =kurang upaya & gssapiServiceName =mongodb
Sesi tersirat: sesi { 'ID' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Versi pelayan MongoDB: 6.0.3


Kami sedang mencipta pengguna baharu dengan hak pentadbir menggunakan fungsi createUser().

> guna admin
bertukar kepada db admin
> db.createUser (
... {
... pengguna: 'Saeed' ,
... pwd: '12345' ,
... peranan: [ { peranan: 'userAdminAnyDatabase' , db: 'pentadbir' } , 'readWriteAnyDatabase' ]

... } )
Berjaya menambahkan pengguna: {
'pengguna' : 'Saeed' ,
'peranan' : [
{
'peranan' : 'userAdminAnyDatabase' ,
'db' : 'pentadbir'
} ,
'readWriteAnyDatabase'
]
}


Memberi kuasa kepada pengguna 'Saeed' menggunakan bukti kelayakan dalam fungsi 'auth' dan memaparkan pangkalan data MongoDB yang dimiliki pada masa ini.

> db.auth ( 'Saeed' , '12345' )
satu
> tunjukkan dbs
pentadbir   0.000GB
konfigurasi 0.000GB
tempatan 0.000GB

Pasang Pemacu MongoDB untuk Golang

Buka terminal dalam Kod Visual Studio dan gerakkan dalam folder 'Golang' di mana anda ingin menambah fail kod sumber anda. Jalankan arahan 'go mod init' dengan nama folder untuk mencipta fail 'go.mod'. Muatkan pemacu MongoDB untuk bahasa Go melalui pertanyaan 'go get'.

saeedraza@virtualbox:~/Golang$ pergi mod init Golang


Dalam sesetengah kes, ia juga diperlukan untuk memuatkan pemacu MongoDB format bson untuk Golang.

saeedraza@virtualbox:~/Golang$ pergi pergi.mongodb.org / pemandu mongo / bson


Pastikan anda menambah pakej sambungan yang diperlukan seperti 'gopls' dalam kod Visual Studio menggunakan panel Sambungan tanpa menggunakan sebarang arahan.


Bersama-sama dengan 'gopls', Golang mungkin memerlukan alat 'dlv' untuk dipasang dengan pasti.

Contoh Kod Pergi

Fail kod 'main.go' telah dimulakan dengan import beberapa pakej berguna yang akan digunakan dalam keseluruhan kod untuk sambungan. Sebanyak 7 import telah dibuat di sini. Selepas mengimport pakej, kami mencipta struktur baharu bernama MongoField dengan 4 ahli data jenis JSON di dalamnya. 2 daripada ahli data ini adalah rentetan dan 2 daripadanya adalah integer.

Selepas ini, jenis pembolehubah 'uri' yang berterusan telah diisytiharkan dengan alamat klien atau anda perlu menambah alamat localhost anda di dalamnya mengikut nama pengguna dan kata laluan. Fungsi utama() bermula dengan penggunaan fungsi connect() Golang untuk menyambung dengan MongoDB melalui objek 'mongo'. Fungsi ApplyURI() akan mengambil pembolehubah 'uri' sebagai hujahnya untuk digunakan pada fungsi Client() supaya sambungan boleh diwujudkan melalui alamat hos. Pakej konteks telah memainkan peranan utama untuk memanggil fungsi TODO() untuk meminta sambungan. Jika sambungan telah diwujudkan antara kod Visual Studio dan MongoDB dengan jayanya, isyarat yang dikembalikan oleh klien akan ditambahkan pada pembolehubah 'klien'; jika tidak, ralat akan disimpan dalam pembolehubah 'err'.

Pernyataan 'jika' ada di sini untuk memaparkan mesej dengan sewajarnya. Jika pembolehubah 'err' mendapat nilai selain daripada 'nil', fungsi Println() daripada pakej format 'fmt' akan mencetak ralat itu pada skrin output, terminal. Pakej 'os' akan digunakan untuk keluar dari program jika ralat berlaku. Pakej konteks sekali lagi digunakan di sini untuk menguruskan tamat masa untuk sambungan diwujudkan melalui program ini. Untuk nilai tamat masa tertentu 'ctx', program kami akan dilaksanakan. Koleksi baharu 'Orang' bersama dengan pangkalan data baharu 'Baharu' akan dibuat dalam pelanggan MongoDB melalui Golang. Println() akan memaparkan jenis koleksi 'c' menggunakan fungsi 'TypeOf' daripada pakej reflect.

Rekod 'Rec' telah dibuat menggunakan struktur ahli data MongoField yang dimulakan di sini satu demi satu. Jenis rekod telah dipaparkan dan rekod 'Rec' akan dimasukkan ke dalam klien MongoDB menggunakan fungsi insertOne dengan objek koleksi 'c'. Sisipan yang berjaya membawa kepada pembolehubah 'hasil' yang memegang nilai kejayaan manakala pembolehubah 'insertErr' akan memegang nilai kegagalan. Pernyataan 'jika' digunakan sekali lagi untuk menyemak dan memaparkan ralat dalam memasukkan rekod hanya jika pembolehubah 'insertErr' memegang selain daripada nilai 'nihil'. Jika tidak, bahagian 'lain' penyata akan memegang beberapa pernyataan Println() untuk memaparkan jenis rekod yang akan dimasukkan, ID rekod dan mesej kejayaan untuk sambungan dan sisipan yang telah berlaku. Kod Golang kini lengkap.

pakej utama
import (
'konteks'
'fmt'
'awak'
'renungkan'
'masa'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
menaip Struktur MongoField {
Namakan   rentetan ` json: 'Lapangan Str' `
E-mel  rentetan ` json: 'Lapangan Str' `
Umur    int ` json: 'Int Medan' `
Gaji int ` json: 'Int Medan' `
}
const uri = “mongodb: // Pengguna:Kata Laluan @ localhost: 27017 / ? maxPoolSize = dua puluh & dalam =majoriti”
fungsi utama ( ) {
pelanggan, err : = mongo.Connect ( konteks.SEMUA ( ) ,pilihan.Pelanggan ( ) .ApplyURI ( menaip ) )
jika silap ! = tiada {
fmt.Println ( 'Ralat Mongo.connect(): ' , silap )
os. Keluar ( satu )
}
ctx, _ := context.WithTimeout ( konteks.Latar belakang ( ) , lima belas * masa.Kedua )
c := klien.Pangkalan data ( 'Baru' ) .Koleksi ( 'Orang' )
fmt.Println ( 'Jenis Koleksi:' , reflect.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
nama: 'EDEN' ,
e-mel: 'eden@gmail.com' ,
umur: Empat lima ,
Gaji: 50000 }
fmt.Println ( 'Jenis Rekod:' , reflect.TypeOf ( Rec ) , ' \n ' )
hasil, insertErr := c.InsertOne ( ctx, Rec )
jika insertErr ! = tiada {
fmt.Println ( 'InsertOne Ralat:' , insertErr )
os. Keluar ( satu )
} lain {
fmt.Println ( 'InsertOne jenis hasil:' , reflect.TypeOf ( hasil ) )
newID = result.InsertedID
fmt.Println ( 'ID Rekod Dimasukkan: ' , newID ) )
fmt.Println ( 'Berjaya Menyambung dan Memasukkan Rekod!' )
} }


Simpan kod Golang dan buka terminal dalam folder Golang. Sekarang, gunakan arahan 'go' dengan kata kunci 'run' untuk melaksanakan fail kod 'main.go'. Penyahpepijatan berjaya dan koleksi 'Orang' telah berjaya dijana dalam MongoDB. Output menunjukkan jenis koleksi, jenis rekod, jenis hasil dan 'ID' rekod.

saeedraza @ kotak maya:~ / Golang$ Go Run Main.go
Jenis Koleksi: * mongo.Koleksi
Jenis Rekod: utama.MongoField
Jenis hasil InsertOne: * mongo.InsertOneResult
ID Rekod Dimasukkan: ObjectID ( “63a8535ac97b4218230664b6” )
Berjaya Menyambung dan Memasukkan Rekod.


Buka kompas 'MongoDB' di hujung anda dan sambungkan dengan hos setempatnya menggunakan 'URI'.


Selepas berpindah dalam pangkalan data 'Baharu', kami telah mendapat koleksi 'Orang' yang dipaparkan dalam bahagian 'Dokumen' bersama-sama dengan rekod yang telah kami tambahkan.

Kesimpulan

Panduan ini menggambarkan penggunaan bahasa Go untuk menambah rekod dalam klien MongoDB menggunakan alat Visual Studio Code dalam sistem Linux. Untuk ini, kami telah memasang mongodb bersama pemacu mongodb untuk 'golang' dalam sistem. Menggunakan bahasa Golang, kami telah mencipta fail 'go' dalam MongoDB dan membincangkan pelbagai pakej dan fungsi Golang untuk membuat sambungan ke MongoDB dan memasukkan rekod. Pada akhirnya, kami telah menunjukkan hasil pada kompas MongoDB yang menunjukkan bahawa anda boleh menyambungkan sebarang alat Golang ke MongoDB.