Bagaimana Menghubungkan MongoDB dengan Golang

Bagaimana Menghubungkan Mongodb Dengan Golang



Sama seperti bahasa C, bahasa Golang juga merupakan bahasa sumber terbuka yang dapat dijalankan di banyak alat di sistem Windows dan Linux/Unix untuk membuat catatan. Seperti C++ dan Java, kita dapat membuat koneksi antara sistem klien MongoDB dan bahasa Go menggunakan alat golang apa saja. Untuk melakukan ini, kami akan melakukan beberapa langkah yang sangat penting dan perlu di Ubuntu 22.04 dengan memanfaatkan alat kode Visual Studio untuk sebuah program. Sebelum membuat koneksi dengan kompas MongoDB, kami cenderung menginstal MongoDB dan Visual Studio Code bersama dengan 'go' dan ekstensi yang diperlukan dalam panduan untuk membantu Anda dalam bahasa Go.

Instal MongoDB

Kami telah mengunduh paket 'deb' dari server MongoDB dari situs resminya. Paket 'Deb' juga dapat dijalankan di Ubuntu menggunakan alat perintah 'dpkg' di Terminal.







Mengeksekusi file server MongoDB di terminal dengan hak 'sudo' dan memberikan kode sandi.



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


Jika Anda menemukan layanan MongoDB tidak aktif setelah mencoba instruksi 'systemctl' dari Ubuntu untuk memeriksa statusnya, Anda juga dapat memperbaruinya. Untuk mengaktifkan MongoDB, coba instruksi systemctl dengan kata kunci 'start' dan 'enable'.

saeedraza@virtualbox:~$ sudo systemctl mulai mongod
saeedraza@virtualbox:~$ sudo systemctl memungkinkan mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Luncurkan MongoDB

Setelah instalasi, luncurkan MongoDb shell dengan cepat menggunakan kueri 'mongo'. Beralih ke database 'admin' untuk melakukan langkah selanjutnya.

saeedraza@virtualbox:~$ mongo
MongoDB versi shell v5.0.14
menghubungkan ke: mongodb: // 127.0.0.1: 27017 / ? kompresor =dengan disabilitas & gssapiServiceName =mongodb
Sesi implisit: sesi { 'Indo' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Versi server MongoDB: 6.0.3


Kami membuat pengguna baru dengan hak admin menggunakan fungsi createUser().

> gunakan adm
beralih ke admin db
> db.createUser (
... {
... pengguna: 'Saeed' ,
... pwd: '12345' ,
... peran: [ { wewenang: 'userAdminAnyDatabase' , db: 'admin' } , 'bacaTulisAnyDatabase' ]

... } )
Berhasil menambahkan pengguna: {
'pengguna' : 'Saeed' ,
'peran' : [
{
'wewenang' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'bacaTulisAnyDatabase'
]
}


Mengotorisasi pengguna 'Saeed' menggunakan kredensial dalam fungsi 'auth' dan menampilkan database MongoDB yang dimiliki saat ini.

> db.auth ( 'Said' , '12345' )
satu
> tampilkan dbs
admin   0,000 GB
konfigurasi  0,000 GB
lokal 0,000 GB

Instal Driver MongoDB untuk Golang

Buka terminal di Visual Studio Code dan pindah ke dalam folder 'Golang' di mana Anda ingin menambahkan file kode sumber Anda. Jalankan instruksi 'go mod init' dengan nama folder untuk membuat file 'go.mod'. Muat driver MongoDB untuk bahasa Go melalui kueri 'go get'.

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


Dalam beberapa kasus, diperlukan juga untuk memuat driver MongoDB format bson untuk Golang.

saeedraza@virtualbox:~/Golang$ buka go.mongodb.org / mongo-driver / bson


Pastikan untuk menambahkan paket ekstensi yang diperlukan seperti 'gopls' dalam kode Visual Studio menggunakan panel Extensions tanpa menggunakan instruksi apa pun.


Seiring dengan 'gopls', Golang mungkin memerlukan alat 'dlv' untuk dipasang.

Contoh Kode Pergi

File kode 'main.go' telah dimulai dengan impor beberapa paket berguna yang akan digunakan di seluruh kode untuk koneksi. Sebanyak 7 impor telah dilakukan di sini. Setelah mengimpor paket, kami membuat struktur baru bernama MongoField dengan 4 anggota tipe data JSON di dalamnya. 2 dari anggota data ini adalah string dan 2 di antaranya adalah bilangan bulat.

Setelah ini, jenis variabel 'uri' konstan telah dideklarasikan dengan alamat klien atau Anda harus menambahkan alamat localhost Anda di dalamnya sesuai dengan nama pengguna dan kata sandi. Fungsi main() dimulai dengan penggunaan fungsi connect() dari Golang untuk terhubung dengan MongoDB melalui objek “mongo”. Fungsi ApplyURI() akan mengambil variabel 'uri' sebagai argumennya untuk diterapkan pada fungsi Client() sehingga koneksi dapat dibuat melalui alamat host. Paket konteks telah memainkan peran utama untuk memanggil fungsi TODO() untuk meminta koneksi. Jika koneksi berhasil dibuat antara kode Visual Studio dan MongoDB, sinyal yang dikembalikan klien akan ditambahkan ke variabel 'klien'; jika tidak, kesalahan akan disimpan dalam variabel 'err'.

Pernyataan 'jika' ada di sini untuk menampilkan pesan yang sesuai. Jika variabel “err” mendapat nilai selain “nil”, fungsi Println() dari paket format paket “fmt” akan mencetak kesalahan tersebut pada layar keluaran, terminal. Paket 'os' akan digunakan untuk keluar dari program jika terjadi kesalahan. Paket konteks sekali lagi digunakan di sini untuk mengatur batas waktu koneksi yang akan dibuat melalui program ini. Untuk nilai batas waktu tertentu 'ctx', program kami akan dijalankan. Koleksi baru 'Orang' bersama dengan database baru 'Baru' akan dibuat di klien MongoDB melalui Golang. Println() akan menampilkan tipe koleksi “c” menggunakan fungsi “TypeOf” dari paket reflect.

Rekor 'Rec' dibuat menggunakan struktur anggota data MongoField yang diinisialisasi di sini satu per satu. Jenis catatan ditampilkan dan catatan 'Rec' akan dimasukkan ke klien MongoDB menggunakan fungsi insertOne dengan objek koleksi 'c'. Penyisipan yang berhasil mengarah ke variabel 'hasil' yang menyimpan nilai keberhasilan sementara variabel 'insertErr' akan menyimpan nilai kegagalan. Pernyataan 'jika' digunakan lagi untuk memeriksa dan menampilkan kesalahan dalam memasukkan catatan hanya jika variabel 'insertErr' memegang selain nilai 'nihil'. Jika tidak, bagian “else” dari pernyataan akan menyimpan beberapa pernyataan Println() untuk menampilkan tipe record yang akan disisipkan, ID record, dan pesan sukses untuk koneksi dan penyisipan yang telah dilakukan. Kode Golang sekarang sudah selesai.

paket utama
impor (
'konteks'
'fmt'
'Anda'
'mencerminkan'
'waktu'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/opsi'
)
Tipe struktur MongoField {
Beri nama   string ` json: 'Str Lapangan' `
 string email ` json: 'Str Lapangan' `
Usia    int ` json: 'Int Lapangan' `
Gaji int ` json: 'Int Lapangan' `
}
const uri = “mongodb: // Pengguna: Kata Sandi @ host lokal: 27017 / ? maxPoolSize = dua puluh & di dalam = mayoritas”
fungsi utama ( ) {
klien, err := mongo.Connect ( konteks.SEMUA ( ) , pilihan.Klien ( ) .TerapkanURI ( Tipe ) )
jika berbuat salah ! = nol {
fmt.Println ( 'Kesalahan Mongo.connect(): ' , salah )
os.Exit ( satu )
}
ctx, _ := konteks.WithTimeout ( konteks.Latar belakang ( ) , limabelas * waktu.Kedua )
c := klien.Database ( 'Baru' ) .Koleksi ( 'Orang' )
fmt.Println ( 'Jenis Koleksi:' , reflect.TypeOf ( c ) , ' \n ' )
Rec := MongoField {
Nama: 'EDEN' ,
Surel: 'eden@gmail.com' ,
Usia: Empat.Lima ,
Gaji: 50000 }
fmt.Println ( 'Jenis Rekam:' , reflect.TypeOf ( Rek ) , ' \n ' )
hasilnya, insertErr := c.InsertOne ( ctx, Rek )
jika insertErr ! = nol {
fmt.Println ( 'Masukkan Satu Kesalahan:' , masukkanErr )
os.Exit ( satu )
} kalau tidak {
fmt.Println ( 'Jenis hasil InsertOne:' , reflect.TypeOf ( hasil ) )
newID = result.InsertedID
fmt.Println ( 'ID Rekaman yang Dimasukkan:' , ID baru ) )
fmt.Println ( 'Berhasil Terhubung dan Menyisipkan Catatan!' )
} }


Simpan kode Golang dan buka terminal di dalam folder Golang. Sekarang, gunakan instruksi “go” dengan kata kunci “run” untuk mengeksekusi file kode “main.go”. Proses debug berhasil dan koleksi 'Person' berhasil dibuat di MongoDB. Keluarannya menunjukkan jenis koleksi, jenis catatan, jenis hasil, dan 'ID' dari catatan.

saeedraza @ kotak virtual:~ / Golang$ Go Run Main.go
Jenis Koleksi: * mongo.Collection
Jenis Rekaman: main.MongoField
Jenis hasil InsertOne: * mongo.InsertOneResult
ID Catatan yang Dimasukkan: ObjectID ( “63a8535ac97b4218230664b6” )
Berhasil Menghubungkan dan Menyisipkan Rekaman.


Buka kompas 'MongoDB' di ujung Anda dan hubungkan dengan host lokalnya menggunakan 'URI'.


Setelah pindah ke dalam database 'Baru', kami mendapatkan koleksi 'Orang' yang ditampilkan di bagian 'Dokumen' bersama dengan catatan yang telah kami tambahkan.

Kesimpulan

Panduan ini mengilustrasikan penggunaan bahasa Go untuk menambahkan catatan di klien MongoDB menggunakan alat Visual Studio Code di sistem Linux. Untuk ini, kami telah menginstal mongodb bersama dengan driver mongodb untuk 'golang' di sistem. Menggunakan bahasa Golang, kami telah membuat file 'go' di MongoDB dan membahas berbagai paket dan fungsi Golang untuk membuat koneksi ke MongoDB dan menyisipkan record. Pada akhirnya, kami telah mendemonstrasikan hasil pada kompas MongoDB yang menunjukkan bahwa Anda dapat menghubungkan alat Golang apa pun ke MongoDB.