Jak propojit MongoDB s Golang

Jak Propojit Mongodb S Golang



Stejně jako jazyk C je jazyk Golang také jazykem s otevřeným zdrojovým kódem, který lze spustit na mnoha nástrojích v systémech Windows a Linux/Unix a vytvářet záznamy. Stejně jako C++ a Java můžeme vytvořit spojení mezi klientským systémem MongoDB a jazykem Go pomocí jakéhokoli nástroje golang. Za tímto účelem provedeme několik velmi důležitých a nezbytných kroků v Ubuntu 22.04 pomocí nástroje Visual Studio pro kód pro program. Před navázáním spojení s kompasem MongoDB máme tendenci nainstalovat MongoDB a Visual Studio Code spolu s „go“ a požadovanými rozšířeními v průvodci, které vám pomohou v jazyce Go.

Nainstalujte MongoDB

Stáhli jsme balíček „deb“ serveru MongoDB z jeho oficiálních stránek. Balíček „Deb“ lze také spustit v Ubuntu pomocí příkazového nástroje „dpkg“ na terminálu.







Spustil soubor serveru MongoDB na terminálu s právy „sudo“ a poskytl přístupový kód.



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


Pokud jste zjistili, že služba MongoDB je na vašem konci neaktivní poté, co jste vyzkoušeli instrukci „systemctl“ Ubuntu ke kontrole stavu, můžete ji také aktualizovat. Chcete-li aktivovat MongoDB, vyzkoušejte instrukci systemctl s klíčovými slovy „start“ a „enable“.

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl umožnit mongod
saeedraza@virtualbox:~$ sudo systemctl status mongod

Spusťte MongoDB

Po instalaci rychle spusťte prostředí MongoDb pomocí dotazu „mongo“. Přejděte do databáze „admin“ a proveďte následující kroky.

saeedraza@virtualbox:~$ mongo
MongoDB shell verze v5.0.14
připojení k: mongodb: // 127.0.0.1: 27017 / ? kompresory = zakázáno & gssapiServiceName = mongodb
Implicitní relace: relace { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
Verze serveru MongoDB: 6.0.3


Pomocí funkce createUser() vytváříme nového uživatele s právy správce.

> použijte admin
přepnuto na db admin
> db.createUser (
... {
... uživatel: 'Saeed' ,
... pwd: '12345' ,
... role: [ { role: 'userAdminAnyDatabase' , db: 'admin' } , 'readWriteAnyDatabase' ]

... } )
Uživatel byl úspěšně přidán: {
'uživatel' : 'Saeed' ,
'role' : [
{
'role' : 'userAdminAnyDatabase' ,
'db' : 'admin'
} ,
'readWriteAnyDatabase'
]
}


Autorizoval uživatele „Saeed“ pomocí přihlašovacích údajů ve funkci „auth“ a zobrazil aktuálně vlastněné databáze MongoDB.

> db.auth ( 'Saeed' , '12345' )
jeden
> zobrazit dbs
správce   0,000 GB
konfigurace 0,000 GB
místní 0,000 GB

Nainstalujte ovladač MongoDB pro Golang

Otevřete terminál v kódu Visual Studio a přesuňte se do složky „Golang“, do které jste chtěli přidat soubory zdrojového kódu. Spusťte instrukci „go mod init“ s názvem složky a vytvořte soubor „go.mod“. Načtěte ovladač MongoDB pro jazyk Go pomocí dotazu „go get“.

saeedraza@virtualbox:~/Golang$ přejděte do režimu Golang


V některých případech je nutné načíst také ovladač MongoDB ve formátu bson pro Golang.

saeedraza@virtualbox:~/Golang$ go get go.mongodb.org / mongo-řidič / bson


Ujistěte se, že jste do kódu sady Visual Studio přidali potřebné balíčky rozšíření jako „gopls“ pomocí panelu Rozšíření bez použití jakýchkoli pokynů.


Spolu s „gopls“ může Golang pro jistotu vyžadovat instalaci nástroje „dlv“.

Příklad Going Code

Soubor kódu „main.go“ byl spuštěn importem některých užitečných balíčků, které budou použity v celém kódu pro připojení. Celkem zde bylo uskutečněno 7 importů. Po importu balíčků jsme vytvořili novou strukturu s názvem MongoField se 4 datovými členy typu JSON. 2 z těchto datových členů jsou řetězce a 2 z nich jsou celá čísla.

Poté je deklarován konstantní typ proměnné „uri“ s adresou klienta nebo do ní musíte přidat svou adresu localhost podle uživatelského jména a hesla. Funkce main() začínají použitím funkce connect() Golang pro připojení k MongoDB prostřednictvím objektu „mongo“. Funkce ApplyURI() bude mít proměnnou „uri“ jako svůj argument, který se použije na funkci Client(), aby bylo možné navázat spojení prostřednictvím adresy hostitele. Kontextový balíček hraje hlavní roli při volání funkce TODO() pro vyžádání připojení. Pokud bylo úspěšně navázáno spojení mezi kódem Visual Studio a MongoDB, signál vrácený klientem bude přidán do proměnné „client“; jinak bude chyba uložena do proměnné „err“.

Příkaz „if“ je zde proto, aby odpovídajícím způsobem zobrazoval zprávy. Pokud má proměnná „err“ jinou hodnotu než „nil“, funkce Println() z balíčku formátování „fmt“ vypíše tuto chybu na výstupní obrazovku, terminál. Pokud dojde k chybě, bude k ukončení programu použit balíček „os“. Kontextový balíček je zde opět použit pro správu časového limitu pro navázání spojení prostřednictvím tohoto programu. Pro konkrétní hodnotu časového limitu „ctx“ se náš program spustí. V klientovi MongoDB přes Golang bude vytvořena nová kolekce „Person“ spolu s novou databází „New“. Println() zobrazí typ kolekce „c“ pomocí funkce „TypeOf“ z balíčku Reflect.

Záznam „Rec“ byl vytvořen pomocí struktury datových členů MongoField, které jsou zde inicializovány jeden po druhém. Zobrazí se typ záznamu a záznam „Rec“ bude vložen do klienta MongoDB pomocí funkce insertOne s objektem kolekce „c“. Úspěšné vložení vede k tomu, že proměnná „výsledek“ drží hodnotu úspěchu, zatímco proměnná „insertErr“ bude obsahovat hodnotu selhání. Příkaz „if“ se opět používá ke kontrole a zobrazení chyby při vkládání záznamu pouze v případě, že proměnná „insertErr“ obsahuje jinou hodnotu než „nil“. V opačném případě bude část příkazu „else“ obsahovat některé příkazy Println() pro zobrazení typu záznamu, který má být vložen, ID záznamu a zprávu o úspěchu pro uskutečněné připojení a vložení. Golang kód je nyní kompletní.

hlavní balíček
import (
'kontext'
'fmt'
'vy'
'odrážet'
'čas'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
typ Struktura MongoField {
Název   řetězec ' json: 'Pole Str' '
E-mailový řetězec ' json: 'Pole Str' '
Věk    int ' json: 'Pole Int' '
Plat int ' json: 'Pole Int' '
}
const uri = 'mongodb: // Uživatelské heslo @ localhost: 27017 / ? maxPoolSize = dvacet & v = většina'
func main ( ) {
klient, chyba := mongo.Connect ( kontextu.VŠECHNY ( ) ,možnosti.Klient ( ) .PoužítURI ( typ ) )
-li chybovat ! = nula {
fmt.Println ( 'Chyba Mongo.connect(): ' , chyba )
os. Konec ( jeden )
}
ctx, _ := context.WithTimeout ( kontextu.Pozadí ( ) , patnáct * čas.Podruhé )
c := klient.Databáze ( 'Nový' ) .Sbírka ( 'Osoba' )
fmt.Println ( 'Typ kolekce:' , odrážet.Typ ( C ) , ' \n ' )
Rec := MongoField {
Název: 'RÁJ' ,
E-mailem: 'eden@gmail.com' ,
Stáří: Čtyři pět ,
plat: 50 000 }
fmt.Println ( 'Typ záznamu:' , odrážet.Typ ( Rec ) , ' \n ' )
výsledek, insertErr := c.InsertOne ( ctx, Rec )
-li insertErr ! = nula {
fmt.Println ( 'Chyba InsertOne: ' , vložteErr )
os. Konec ( jeden )
} jiný {
fmt.Println ( 'Vložte typ výsledku: ' , odrážet.Typ ( výsledek ) )
newID = result.InsertID
fmt.Println ( 'Vložené ID záznamu: ' , nové ID ) )
fmt.Println ( 'Úspěšně připojeny a vloženy záznamy!' )
} }


Uložte kód Golang a otevřete terminál ve složce Golang. Nyní použijte instrukci „go“ s klíčovým slovem „run“ ke spuštění souboru kódu „main.go“. Ladění bylo úspěšné a kolekce „Person“ byla úspěšně vygenerována v MongoDB. Výstup zobrazuje typ kolekce, typ záznamu, typ výsledku a „ID“ záznamu.

saeedraza @ virtuální schránka:~ / Golang$ Go Run Main.go
Typ sbírky: * mongo.Kolekce
Typ záznamu: main.MongoField
Typ výsledku InsertOne: * mongo.InsertOneResult
Vložené ID záznamu: ObjectID ( '63a8535ac97b4218230664b6' )
Úspěšně připojeny a vloženy záznamy.


Otevřete kompas „MongoDB“ na svém konci a připojte se k místnímu hostiteli pomocí „URI“.


Po přesunutí do databáze „Nová“ se nám v sekci „Dokumenty“ zobrazuje kolekce „Osoba“ spolu se záznamem, který jsme přidali.

Závěr

Tato příručka ilustruje použití jazyka Go k přidávání záznamů do klienta MongoDB pomocí nástroje Visual Studio Code v systému Linux. Za tímto účelem jsme do systému nainstalovali mongodb spolu s ovladačem mongodb pro „golang“. Pomocí jazyka Golang jsme vytvořili soubor „go“ v MongoDB a diskutovali o různých balících a funkcích Golang pro vytvoření připojení k MongoDB a vložení záznamů. Nakonec jsme výsledky demonstrovali na kompasu MongoDB, který ukazuje, že k MongoDB můžete připojit jakýkoli nástroj Golang.