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 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:~$ mongoVersi 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().
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.
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.
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 utamaimport (
'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.
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.