Как подключить MongoDB к Golang

Kak Podklucit Mongodb K Golang



Как и язык C, язык Golang также является языком с открытым исходным кодом, который можно запускать во многих инструментах в системах Windows и Linux/Unix для создания записей. Подобно C++ и Java, мы можем установить связь между клиентской системой MongoDB и языком Go, используя любой инструмент golang. Для этого мы выполним несколько очень важных и необходимых шагов в Ubuntu 22.04, используя инструмент кода Visual Studio для программы. Перед подключением к компасу MongoDB мы обычно устанавливаем MongoDB и Visual Studio Code вместе с «go» и необходимыми расширениями в руководстве, чтобы помочь вам в изучении языка Go.

Установить MongoDB

Мы скачали пакет «deb» сервера MongoDB с его официального сайта. Пакет «Deb» также можно запустить в Ubuntu с помощью командного инструмента «dpkg» в Терминале.







Выполнил файл сервера MongoDB на терминале с правами «sudo» и предоставил пароль.



saeedraza@virtualbox:~$ судо дпкг mongodb-org-server_6.0.3_amd64.deb


Если вы обнаружили, что служба MongoDB неактивна на вашем конце после попытки выполнить инструкцию «systemctl» Ubuntu для проверки статуса, вы также можете обновить ее. Чтобы активировать MongoDB, попробуйте выполнить инструкцию systemctl с ключевыми словами «start» и «enable».

saeedraza@virtualbox:~$ судо systemctl запустить монгод
saeedraza@virtualbox:~$ судо systemctl включить монбог
saeedraza@virtualbox:~$ судо статус systemctl mongod

Запустить MongoDB

После установки быстро запустите оболочку MongoDb с помощью запроса «mongo». Переключитесь на базу данных «admin», чтобы выполнить дальнейшие шаги.

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


Мы создаем нового пользователя с правами администратора, используя функцию createUser().

> использовать администратора
переключился на админку бд
> db.createUser (
... {
... пользователь: 'Саид' ,
... пароль: '12345' ,
... роли: [ { роль: 'пользовательадминлюбая база данных' , дб: 'админ' } , 'readWriteAnyDatabase' ]

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


Авторизовал пользователя «Saeed», используя учетные данные в функции «auth», и отобразил текущие базы данных MongoDB.

> db.auth ( 'Саид' , '12345' )
один
> показать базы данных
администратор   0,000 ГБ
конфигурация 0,000 ГБ
местный 0,000 ГБ

Установите драйвер MongoDB для Golang

Откройте терминал в Visual Studio Code и перейдите в папку «Golang», в которую вы хотите добавить файлы исходного кода. Запустите инструкцию «go mod init» с именем папки, чтобы создать файл «go.mod». Загрузите драйвер MongoDB для языка Go с помощью запроса «go get».

saeedraza@virtualbox:~/Golang$ иди мод инициализируй Голанг


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

saeedraza@virtualbox:~/Golang$ иди на go.mongodb.org / монго-драйвер / бсон


Обязательно добавьте необходимые пакеты расширений, такие как «gopls», в код Visual Studio с помощью панели «Расширения» без использования каких-либо инструкций.


Наряду с «gopls» для Golang может потребоваться установка инструмента «dlv».

Пример кода

Файл кода «main.go» был запущен с импортом некоторых полезных пакетов, которые будут использоваться во всем коде для подключения. Всего здесь было сделано 7 импортов. После импорта пакетов мы создали новую структуру с именем MongoField с четырьмя элементами данных типа JSON. 2 из этих элементов данных являются строками, а 2 из них — целыми числами.

После этого объявляется константный тип переменной «uri» с адресом клиента или в него нужно добавить свой локальный адрес в соответствии с логином и паролем. Функции main() начинаются с использования функции connect() Golang для подключения к MongoDB через объект «mongo». Функция ApplyURI() будет принимать переменную «uri» в качестве аргумента для применения к функции Client(), чтобы можно было установить соединение через адрес хоста. Пакет контекста играет основную роль в вызове функции TODO() для запроса соединения. Если соединение между кодом Visual Studio и MongoDB установлено успешно, возвращаемый клиентом сигнал будет добавлен в переменную «client»; в противном случае ошибка будет сохранена в переменной «err».

Оператор «if» предназначен для соответствующего отображения сообщений. Если переменная «err» имеет значение, отличное от «nil», функция Println() из пакета формата «fmt» выведет эту ошибку на экран вывода, терминал. Пакет «os» будет использоваться для выхода из программы в случае возникновения ошибки. Пакет контекста снова используется здесь для управления тайм-аутом для установления соединения через эту программу. Для определенного значения тайм-аута «ctx» наша программа будет выполняться. Новая коллекция «Персона» вместе с новой базой данных «Новая» будет создана в клиенте MongoDB через Golang. Println() будет отображать тип коллекции «c», используя функцию «TypeOf» из пакета Reflect.

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

основной пакет
импорт (
'контекст'
'ФМТ'
'ты'
'отражать'
'время'
'go.mongodb.org/монго-драйвер/монго'
'go.mongodb.org/монго-драйвер/монго/параметры'
)
тип Структура MongoField {
Строка имени ` json: 'Полевая улица' `
Строка электронной почты ` json: 'Полевая улица' `
Возраст   целое число ` json: 'Поле Инт' `
Заработная плата ` json: 'Поле Инт' `
}
const uri = «mongodb: // Пользовательский пароль @ локальный хост: 27017 / ? макспулсайз знак равно двадцать & в =большинство»
основная функция ( ) {
клиент, ошибка: = mongo.Connect ( контекст.ВСЕ ( ) ,опции.Клиент ( ) .ApplyURI ( тип ) )
если ошибаться ! = ноль {
fmt.Println ( 'Ошибка Mongo.connect(): ' , ошибаюсь )
ОС Выход ( один )
}
ctx, _ := context.WithTimeout ( контекст. Фон ( ) , пятнадцать * время.Второй )
c := клиент.База данных ( 'Новый' ) .Коллекция ( 'Человек' )
fmt.Println ( 'Тип коллекции:' , отразить.TypeOf ( с ) , ' \n ' )
Запись: = MongoField {
Имя: 'ЭДЕН' ,
Эл. адрес: 'eden@gmail.com' ,
Возраст: Четыре пять ,
Оплата труда: 50000 }
fmt.Println ( 'Тип записи: ' , отразить.TypeOf ( Рек. ) , ' \n ' )
результат, insertErr := c.InsertOne ( ctx, запись )
если вставитьErr ! = ноль {
fmt.Println ( «Ошибка InsertOne:» , вставитьОшибка )
ОС Выход ( один )
} еще {
fmt.Println ( 'Тип результата InsertOne: ' , отразить.TypeOf ( результат ) )
новыйID = результат.InsertedID
fmt.Println ( 'Вставлен идентификатор записи:' , новый идентификатор ) )
fmt.Println ( 'Успешно подключены и вставлены записи!' )
} }


Сохраните код Golang и откройте терминал в папке Golang. Теперь используйте инструкцию «go» с ключевым словом «run», чтобы выполнить файл кода «main.go». Отладка прошла успешно, и коллекция «Персона» была успешно сгенерирована в MongoDB. Вывод показывает тип коллекции, тип записи, тип результата и «ID» записи.

саидраза @ виртуальный бокс: ~ / Golang$ Go Run Main.go
Тип коллекции: * монго.Коллекция
Тип записи: main.MongoField
Тип результата InsertOne: * монго.InsertOneResult
Вставленный идентификатор записи: ObjectID ( «63a8535ac97b4218230664b6» )
Успешно подключенные и вставленные записи.


Откройте компас «MongoDB» на своем конце и подключитесь к его локальному хосту, используя «URI».


После перехода в базу данных «Новая» мы получили коллекцию «Персона», отображаемую в разделе «Документы» вместе с добавленной нами записью.

Заключение

В этом руководстве показано использование языка Go для добавления записей в клиент MongoDB с помощью инструмента Visual Studio Code в системе Linux. Для этого мы установили mongodb вместе с драйвером mongodb для «golang» в системе. Используя язык Golang, мы создали файл «go» в MongoDB и обсудили различные пакеты и функции Golang для создания подключения к MongoDB и вставки записей. В конце мы продемонстрировали результаты на компасе MongoDB, которые показывают, что вы можете подключить любой инструмент Golang к MongoDB.