Как да свържете MongoDB с Golang

Kak Da Sv Rzete Mongodb S Golang



Точно като езика C, езикът Golang също е език с отворен код, който може да се изпълнява на много инструменти на Windows и Linux/Unix системи за създаване на записи. Подобно на C++ и Java, можем да направим връзка между клиентска система MongoDB и език Go, като използваме всеки инструмент golang. За да направим това, ние ще изпълним няколко много важни и необходими стъпки в Ubuntu 22.04, като използваме инструмента за код на Visual Studio за програма. Преди да направим връзка с MongoDB compass, ние сме склонни да инсталираме MongoDB и Visual Studio Code заедно с „go“ и необходимите разширения в ръководството, за да ви помогнем в езика Go.

Инсталирайте MongoDB

Изтеглихме пакета „deb“ на сървъра MongoDB от официалния му уебсайт. Пакетът „Deb“ може също да бъде изпълнен в Ubuntu с помощта на командния инструмент „dpkg“ на терминала.







Изпълних сървърния файл MongoDB на терминала с права „sudo“ и предоставих парола.



saeedraza@virtualbox:~$ sudo dpkg mongodb-org-сървър_6.0.3_amd64.deb


Ако сте установили, че услугата MongoDB е неактивна, след като сте опитали инструкцията „systemctl“ на Ubuntu за проверка на състоянието, можете също да я актуализирате. За да активирате MongoDB, опитайте инструкцията systemctl с ключовите думи „start“ и „enable“.

saeedraza@virtualbox:~$ sudo systemctl стартира mongod
saeedraza@virtualbox:~$ sudo systemctl активирайте mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Стартирайте MongoDB

След инсталацията бързо стартирайте обвивката на MongoDb, като използвате заявката „mongo“. Превключете към базата данни „admin“, за да изпълните следващите стъпки.

saeedraza@virtualbox:~$ монго
MongoDB shell версия v5.0.14
свързване към: mongodb: // 127.0.0.1: 27017 / ? компресори =дезактивиран и gssapiServiceName =mongodb
Неявна сесия: сесия { 'документ за самоличност' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB сървърна версия: 6.0.3


Създаваме нов потребител с администраторски права с помощта на функцията createUser().

> използвайте админ
премина към db admin
> db.createUser (
... {
... потребител: 'Саед' ,
... pwd: '12345' ,
... роли: [ { роля: 'userAdminAnyDatabase' , db: 'админ' } , 'readWriteAnyDatabase' ]

... } )
Успешно добавен потребител: {
'потребител' : 'Саед' ,
'роли' : [
{
'роля' : 'userAdminAnyDatabase' ,
'дб' : 'админ'
} ,
'readWriteAnyDatabase'
]
}


Упълномощи потребителя „Saeed“ с помощта на идентификационни данни във функцията „auth“ и показа текущо притежаваните бази данни на MongoDB.

> db.auth ( „Саед“ , '12345' )
един
> покажи dbs
администратор   0.000GB
конфигурация 0.000GB
местен 0.000GB

Инсталирайте MongoDB драйвер за Golang

Отворете терминала в Visual Studio Code и се преместете в папката „Golang“, в която искате да добавите вашите файлове с изходен код. Изпълнете инструкцията „go mod init“ с името на папката, за да създадете файл „go.mod“. Заредете драйвера MongoDB за езика Go чрез заявката „go get“.

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


В някои случаи е необходимо да се зареди и драйверът MongoDB във формат bson за Golang.

saeedraza@virtualbox:~/Golang$ вземете go.mongodb.org / монго-шофьор / bson


Уверете се, че сте добавили необходимите пакети за разширения като „gopls“ в кода на Visual Studio, като използвате панела за разширения, без да използвате никакви инструкции.


Заедно с „gopls“, Golang може да изисква със сигурност да бъде инсталиран инструментът „dlv“.

Пример за активен код

Кодовият файл „main.go“ е стартиран с импортирането на някои полезни пакети, които ще бъдат използвани в целия код за връзка. Тук са направени общо 7 вноса. След като импортирахме пакетите, създадохме нова структура, наречена MongoField с 4 члена на данни тип JSON в нея. 2 от тези членове на данните са низове, а 2 от тях са цели числа.

След това е деклариран постоянен тип променлива „uri“ с клиентски адрес или трябва да добавите вашия локален адрес в него според потребителското име и паролата. Функциите main() започват с използването на функцията connect() на Golang за свързване с MongoDB чрез обект „mongo“. Функцията ApplyURI() ще вземе променливата „uri“ като свой аргумент, за да се приложи към функцията Client(), така че да може да се установи връзка чрез адрес на хост. Контекстният пакет играе основната роля за извикване на функцията TODO() за заявяване на връзка. Ако връзката е установена успешно между кода на Visual Studio и MongoDB, върнатият от клиента сигнал ще бъде добавен към променливата „клиент“; в противен случай грешката ще бъде съхранена в променливата “err”.

Изявлението „if“ е тук, за да покаже съответно съобщенията. Ако променливата „err“ получи стойност, различна от „nil“, функцията Println() от пакета за форматиране „fmt“ ще отпечата тази грешка на изходния екран, терминала. Пакетът “os” ще се използва за излизане от програмата, ако възникне грешката. Контекстният пакет отново се използва тук за управление на времето за изчакване за връзката, която трябва да бъде установена чрез тази програма. За конкретната стойност на изчакване „ctx“ нашата програма ще се изпълнява. Нова колекция „Person“ заедно с нова база данни „New“ ще бъде създадена в клиента MongoDB чрез Golang. Println() ще показва типа на колекция „c“, използвайки функцията „TypeOf“ от пакета за отразяване.

Записът „Rec“ е създаден с помощта на членовете на данните на структурата MongoField, които се инициализират тук един по един. Типът на записа се показва и записът „Rec“ ще бъде вмъкнат в клиента MongoDB с помощта на функцията insertOne с обекта за събиране „c“. Успешното вмъкване води до променлива „резултат“, която съдържа стойността за успех, докато променливата „insertErr“ ще съдържа стойността за неуспех. Операторът „if“ се използва отново за проверка и показване на грешката при вмъкване на запис само ако променливата „insertErr“ съдържа различна от „nil“ стойност. В противен случай частта „else“ на оператора ще съдържа някои оператори Println() за показване на типа на записа, който ще бъде вмъкнат, идентификатора на записа и съобщението за успех за връзката и вмъкването, което е извършено. Кодът на Golang вече е завършен.

основен пакет
импортиране (
'контекст'
'fmt'
'ти'
'отразявам'
'време'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
Тип MongoField структура {
Име   низ ` json: 'Field Str' `
Имейл  низ ` json: 'Field Str' `
Възраст    межд ` json: 'Поле Int' `
Заплата межд ` json: 'Поле Int' `
}
const uri = „mongodb: // Потребител: Парола @ локален хост: 27017 / ? maxPoolSize = двадесет и в =мнозинство”
основна функция ( ) {
клиент, грешка := mongo.Connect ( контекст.ВСИЧКИ ( ) ,опции.Клиент ( ) .ApplyURI ( Тип ) )
ако грешка ! = нула {
fmt.Println ( 'Mongo.connect() грешка: ' , грешка )
ос. Изход ( един )
}
ctx, _ := context.WithTimeout ( контекст. Фон ( ) , петнадесет * време.Второ )
c := client.Database ( 'ново' ) .Колекция ( 'лице' )
fmt.Println ( 'Тип колекция: ' , отразяват.TypeOf ( ° С ) , ' ' )
Rec := MongoField {
Име: 'ЕДЕН' ,
Електронна поща: 'eden@gmail.com' ,
Възраст: Четири пет ,
Заплата: 50 000 }
fmt.Println ( 'Тип запис: ' , отразяват.TypeOf ( Rec ) , ' ' )
резултат, insertErr := c.InsertOne ( ctx, Rec )
ако вмъкване на грешка ! = нула {
fmt.Println ( „Грешка на InsertOne:“ , вмъкнете грешка )
ос. Изход ( един )
} друго {
fmt.Println ( 'InsertOne тип резултат: ' , отразяват.TypeOf ( резултат ) )
newID = резултат.InsertedID
fmt.Println ( „Вмъкнат идентификатор на запис:“ , нов ИД ) )
fmt.Println ( „Успешно свързани и вмъкнати записи!“ )
} }


Запазете кода на Golang и отворете терминала в папката Golang. Сега използвайте инструкцията „go“ с ключовата дума „run“, за да изпълните кодовия файл „main.go“. Отстраняването на грешки беше успешно и колекцията „Person“ беше успешно генерирана в MongoDB. Резултатът показва типа на колекцията, типа на записа, типа на резултата и „ID“ на запис.

saeedraza @ виртуална кутия:~ / Golang$ Go Стартирайте Main.go
Тип колекция: * mongo.Колекция
Тип запис: main.MongoField
Тип резултат InsertOne: * mongo.InsertOneResult
Вмъкнат ID на запис: ObjectID ( „63a8535ac97b4218230664b6“ )
Успешно свързани и вмъкнати записи.


Отворете компаса „MongoDB“ от своя страна и се свържете с неговия локален хост, като използвате „URI“.


След като се преместихме в базата данни „Нова“, получихме колекцията „Лице“, показана в секцията „Документи“, заедно със записа, който добавихме.

Заключение

Това ръководство илюстрира използването на езика Go за добавяне на записи в клиента MongoDB с помощта на инструмента Visual Studio Code в системата Linux. За тази цел сме инсталирали mongodb заедно с драйвера mongodb за „golang“ в системата. Използвайки език на Golang, ние създадохме файл „go“ в MongoDB и обсъдихме разнообразието от пакети и функции на Golang за създаване на връзка към MongoDB и вмъкване на записи. В крайна сметка ние демонстрирахме резултатите на MongoDB компаса, който показва, че можете да свържете всеки Golang инструмент към MongoDB.