Cách kết nối MongoDB với Golang

Cach Ket Noi Mongodb Voi Golang



Cũng giống như ngôn ngữ C, ngôn ngữ Golang cũng là ngôn ngữ mã nguồn mở có thể được thực thi trên nhiều công cụ trên hệ thống Windows và Linux/Unix để tạo bản ghi. Giống như C++ và Java, chúng ta có thể tạo kết nối giữa hệ thống máy khách MongoDB và ngôn ngữ Go bằng bất kỳ công cụ golang nào. Để làm điều này, chúng tôi sẽ thực hiện một số bước rất quan trọng và cần thiết trong Ubuntu 22.04 bằng cách sử dụng công cụ mã Visual Studio cho một chương trình. Trước khi tạo kết nối với MongoDB la bàn, chúng tôi có xu hướng cài đặt MongoDB và Visual Studio Code cùng với “go” và các tiện ích mở rộng bắt buộc trong hướng dẫn để giúp bạn sử dụng ngôn ngữ Go.

Cài đặt MongoDB

Chúng tôi đã tải xuống gói “deb” của máy chủ MongoDB từ trang web chính thức của nó. Gói “Deb” cũng có thể được thực thi trong Ubuntu bằng công cụ lệnh “dpkg” trên Terminal.







Đã thực thi tệp máy chủ MongoDB trên thiết bị đầu cuối với quyền “sudo” và cung cấp mật mã.



saeedraza@virtualbox:~$ sudo đpkg -tôi mongodb-org-server_6.0.3_amd64.deb


Nếu bạn thấy dịch vụ MongoDB không hoạt động sau khi thử hướng dẫn “systemctl” của Ubuntu để kiểm tra trạng thái, bạn cũng có thể cập nhật dịch vụ đó. Để kích hoạt MongoDB, hãy thử hướng dẫn systemctl với từ khóa “bắt đầu” và “kích hoạt”.

saeedraza@virtualbox:~$ sudo systemctl bắt đầu mongod
saeedraza@virtualbox:~$ sudo hệ thống cho phép mongod
saeedraza@virtualbox:~$ sudo trạng thái systemctl mongod

Khởi chạy MongoDB

Sau khi cài đặt, hãy nhanh chóng khởi chạy trình bao MongoDb bằng cách sử dụng truy vấn “mongo”. Chuyển sang cơ sở dữ liệu “quản trị” để thực hiện các bước tiếp theo.

saeedraza@virtualbox:~$ mongo
Phiên bản vỏ MongoDB v5.0.14
kết nối với: mongodb: // 127.0.0.1: 27017 / ? máy nén = bị vô hiệu hóa & gssapiTên dịch vụ =mongodb
phiên ngầm định: phiên { 'Tôi' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Phiên bản máy chủ MongoDB: 6.0.3


Chúng tôi đang tạo một người dùng mới với quyền quản trị viên bằng hàm createUser().

> sử dụng quản trị viên
đã chuyển sang quản trị viên db
> db.createUser (
... {
... người sử dụng: 'Saeed' ,
... pwd: '12345' ,
... vai trò: [ { vai diễn: 'userAdminAnyDatabase' , đb: 'quản trị viên' } , 'readWriteAnyDatabase' ]

... } )
Đã thêm người dùng thành công: {
'người sử dụng' : 'Saeed' ,
'vai trò' : [
{
'vai diễn' : 'userAdminAnyDatabase' ,
'db' : 'quản trị viên'
} ,
'readWriteAnyDatabase'
]
}


Đã ủy quyền cho người dùng “Saeed” bằng thông tin xác thực trong chức năng “auth” và hiển thị cơ sở dữ liệu hiện đang sở hữu của MongoDB.

> db.auth ( 'Saeed' , '12345' )
một
> hiển thị dbs
quản trị viên   0,000GB
cấu hình  0,000GB
địa phương 0.000GB

Cài đặt trình điều khiển MongoDB cho Golang

Mở thiết bị đầu cuối trong Visual Studio Code và di chuyển trong thư mục “Golang” mà bạn muốn thêm các tệp mã nguồn của mình. Chạy hướng dẫn “go mod init” với tên thư mục để tạo tệp “go.mod”. Tải trình điều khiển MongoDB cho ngôn ngữ Go thông qua truy vấn “go get”.

saeedraza@virtualbox:~/Golang$ đi mod init Golang


Trong một số trường hợp, cũng cần phải tải trình điều khiển MongoDB định dạng bson cho Golang.

saeedraza@virtualbox:~/Golang$ go get go.mongodb.org / trình điều khiển mongo / con trai


Đảm bảo thêm các gói tiện ích mở rộng cần thiết như “gopls” trong mã Visual Studio bằng bảng Tiện ích mở rộng mà không cần sử dụng bất kỳ hướng dẫn nào.


Cùng với “gopls”, chắc chắn Golang có thể yêu cầu cài đặt công cụ “dlv”.

Đi Code Ví dụ

Tệp mã “main.go” đã được bắt đầu với việc nhập một số gói hữu ích sẽ được sử dụng trong toàn bộ mã để kết nối. Tổng cộng có 7 lần nhập khẩu đã được thực hiện tại đây. Sau khi nhập các gói, chúng tôi đã tạo một cấu trúc mới có tên MongoField với 4 thành viên dữ liệu kiểu JSON trong đó. 2 trong số các thành viên dữ liệu này là chuỗi và 2 trong số đó là số nguyên.

Sau đó, một loại biến cố định “uri” đã được khai báo với địa chỉ máy khách hoặc bạn phải thêm địa chỉ máy chủ cục bộ của mình vào đó theo tên người dùng và mật khẩu. Các hàm main() bắt đầu bằng việc sử dụng hàm connect() của Golang để kết nối với MongoDB thông qua một đối tượng “mongo”. Hàm ApplyURI() sẽ lấy biến “uri” làm đối số của nó để áp dụng cho hàm Client() để có thể thiết lập kết nối thông qua địa chỉ máy chủ. Gói ngữ cảnh đóng vai trò chính gọi hàm TODO() để yêu cầu kết nối. Nếu kết nối được thiết lập thành công giữa mã Visual Studio và MongoDB, thì tín hiệu do máy khách trả về sẽ được thêm vào biến “máy khách”; nếu không, lỗi sẽ được lưu trong biến “err”.

Câu lệnh “nếu” ở đây để hiển thị các thông báo tương ứng. Nếu biến “err” có giá trị khác “nil”, hàm Println() từ gói định dạng gói “fmt” sẽ in lỗi đó trên màn hình đầu ra, thiết bị đầu cuối. Gói “os” sẽ được sử dụng để thoát khỏi chương trình nếu xảy ra lỗi. Gói ngữ cảnh một lần nữa được sử dụng ở đây để quản lý thời gian chờ kết nối được thiết lập thông qua chương trình này. Đối với giá trị thời gian chờ cụ thể “ctx”, chương trình của chúng tôi sẽ được thực thi. Một bộ sưu tập mới “Người” cùng với cơ sở dữ liệu mới “Mới” sẽ được tạo trong ứng dụng khách MongoDB thông qua Golang. Println() sẽ hiển thị loại bộ sưu tập “c” bằng cách sử dụng chức năng “TypeOf” từ gói phản ánh.

Một bản ghi “Rec” đã được tạo bằng cách sử dụng cấu trúc các thành viên dữ liệu MongoField được khởi tạo ở đây từng cái một. Loại bản ghi đã được hiển thị và bản ghi “Rec” sẽ được chèn vào máy khách MongoDB bằng cách sử dụng hàm insertOne với đối tượng bộ sưu tập “c”. Việc chèn thành công dẫn đến biến “kết quả” giữ giá trị thành công trong khi biến “insertErr” sẽ giữ giá trị lỗi. Câu lệnh “if” được sử dụng lại để kiểm tra và hiển thị lỗi khi chèn bản ghi chỉ khi biến “insertErr” giữ giá trị khác với giá trị “nil”. Mặt khác, phần “else” của câu lệnh sẽ chứa một số câu lệnh Println() để hiển thị loại bản ghi sẽ được chèn, ID bản ghi và thông báo thành công cho việc kết nối và chèn đã diễn ra. Mã Golang hiện đã hoàn tất.

gói chính
nhập khẩu (
'định nghĩa bài văn'
'fmt'
'bạn'
'phản chiếu'
'thời gian'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
loại Cấu trúc MongoField {
Tên   chuỗi ` json: 'Trường Str' `
Chuỗi email ` json: 'Trường Str' `
Tuổi    int ` json: 'Trường Int' `
tiền lương ` json: 'Trường Int' `
}
const uri = “mongodb: // Mật khẩu người dùng @ máy chủ cục bộ: 27017 / ? maxPoolSize = hai mươi & Trong = đa số”
chức năng chính ( ) {
máy khách, lỗi := mongo.Connect ( bối cảnh. TẤT CẢ ( ) ,options.Client ( ) .applyURI ( loại ) )
nếu sai lầm ! = không {
fmt.Println ( 'Lỗi Mongo.connect():' , lỗi )
hệ điều hành Thoát ( một )
}
ctx, _ := context.WithTimeout ( bối cảnh.Background ( ) , mười lăm * thời gian. Thứ hai )
c := client.Database ( 'Mới' ) .Bộ sưu tập ( 'Người' )
fmt.Println ( 'Loại bộ sưu tập:' , phản ánh.TypeOf ( c ) , ' \N ' )
Rec := MongoField {
Tên: 'VƯỜN ĐỊA ĐÀNG' ,
E-mail: 'eden@gmail.com' ,
Tuổi: Bốn năm ,
Lương: 50000 }
fmt.Println ( 'Loại bản ghi:' , phản ánh.TypeOf ( Rec ) , ' \N ' )
kết quả, insertErr := c.InsertOne ( ctx, Rec )
nếu chènErr ! = không {
fmt.Println ( 'Lỗi InsertOne:' , chènErr )
hệ điều hành Thoát ( một )
} khác {
fmt.Println ( 'Loại kết quả InsertOne:' , phản ánh.TypeOf ( kết quả ) )
newID = kết quả.InsertedID
fmt.Println ( 'ID bản ghi đã chèn:' , ID mới ) )
fmt.Println ( 'Bản ghi được kết nối và chèn thành công!' )
} }


Lưu mã Golang và mở thiết bị đầu cuối trong thư mục Golang. Bây giờ, hãy sử dụng lệnh “go” với từ khóa “run” để thực thi tệp mã “main.go”. Quá trình gỡ lỗi đã thành công và bộ sưu tập “Người” đã được tạo thành công trong MongoDB. Đầu ra đang hiển thị loại bộ sưu tập, loại bản ghi, loại kết quả và “ID” của bản ghi.

saeedraza @ hộp ảo:~ / Golang$ Chạy Main.go
Loại bộ sưu tập: * mongo.Collection
Loại bản ghi: main.MongoField
Loại kết quả InsertOne: * mongo.InsertOneResult
Đã chèn ID bản ghi: ObjectID ( “63a8535ac97b4218230664b6” )
Bản ghi được kết nối và chèn thành công.


Mở la bàn “MongoDB” ở cuối của bạn và kết nối với máy chủ cục bộ của nó bằng “URI”.


Sau khi di chuyển trong cơ sở dữ liệu “Mới”, chúng tôi đã có bộ sưu tập “Người” được hiển thị trong phần “Tài liệu” cùng với bản ghi mà chúng tôi đã thêm.

Phần kết luận

Hướng dẫn này minh họa việc sử dụng ngôn ngữ Go để thêm bản ghi trong ứng dụng khách MongoDB bằng công cụ Visual Studio Code trong hệ thống Linux. Đối với điều này, chúng tôi đã cài đặt mongodb cùng với trình điều khiển mongodb cho “golang” trong hệ thống. Sử dụng ngôn ngữ Golang, chúng ta đã tạo tệp “go” trong MongoDB và thảo luận về nhiều gói và chức năng của Golang để tạo kết nối đến MongoDB và chèn bản ghi. Cuối cùng, chúng tôi đã chứng minh kết quả trên la bàn MongoDB cho thấy rằng bạn có thể kết nối bất kỳ công cụ Golang nào với MongoDB.