כיצד לחבר MongoDB עם Golang

Kyzd Lhbr Mongodb M Golang



בדיוק כמו שפת C, גם שפת גולנג היא שפת קוד פתוח שניתן להפעיל בכלים רבים במערכות Windows ו-Linux/Unix ליצירת רשומות. כמו C++ ו-Java, אנו יכולים ליצור חיבור בין מערכת לקוח MongoDB לשפת Go באמצעות כל כלי Golang. לשם כך, נבצע מספר שלבים חשובים והכרחיים מאוד באובונטו 22.04 על ידי שימוש בכלי הקוד של Visual Studio עבור תוכנית. לפני יצירת חיבור עם MongoDB מצפן, אנו נוטים להתקין MongoDB ו- Visual Studio Code יחד עם 'גו' והרחבות נדרשות במדריך כדי לעזור לך בשפת Go.

התקן את MongoDB

הורדנו את חבילת 'deb' של שרת MongoDB מהאתר הרשמי שלו. ניתן להפעיל את חבילת 'Deb' גם באובונטו באמצעות כלי הפקודה 'dpkg' בטרמינל.







ביצע את קובץ השרת MongoDB בטרמינל עם זכויות 'sudo' וסיפק קוד סיסמה.



saeedraza@virtualbox:~$ סודו dpkg -אני mongodb-org-server_6.0.3_amd64.deb


אם מצאת את שירות MongoDB לא פעיל בקצה שלך לאחר שניסית את הוראת 'systemctl' של אובונטו כדי לבדוק את הסטטוס, תוכל לעדכן גם אותו. כדי להפעיל את MongoDB, נסה את הוראת systemctl עם מילות המפתח 'התחל' ו'אפשר'.

saeedraza@virtualbox:~$ סודו systemctl להתחיל mongod
saeedraza@virtualbox:~$ סודו systemctl לְאַפשֵׁר mongod
saeedraza@virtualbox:~$ סודו סטטוס systemctl mongod

הפעל את MongoDB

לאחר ההתקנה, הפעל במהירות את מעטפת MongoDb באמצעות השאילתה 'mongo'. עבור למסד הנתונים 'אדמין' כדי לבצע את שלבי ההמשך.

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 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 באמצעות השאילתה 'עבור קבל'.

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


במקרים מסוימים, נדרש לטעון את מנהל ההתקן בפורמט bson MongoDB גם עבור 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'.

ההצהרה 'אם' כאן כדי להציג את ההודעות בהתאם. אם המשתנה 'err' קיבל ערך אחר מאשר 'nil', הפונקציה Println() מחבילת הפורמט 'fmt' תדפיס את השגיאה הזו במסך הפלט, הטרמינל. החבילה 'OS' תשמש ליציאה מהתוכנית אם השגיאה מתרחשת. חבילת ההקשר מנוצלת כאן שוב כדי לנהל את פסק הזמן ליצירת החיבור באמצעות תוכנית זו. עבור ערך הזמן הקצוב המסוים 'ctx', התוכנית שלנו תבוצע. אוסף חדש 'אדם' יחד עם מסד נתונים חדש 'חדש' ייווצר בלקוח MongoDB דרך Golang. ה-Println() יציג את סוג האוסף 'c' באמצעות הפונקציה 'TypeOf' מחבילת reflect.

רשומה 'Rec' נוצרה באמצעות המבנה של חברי הנתונים של MongoField אשר מאותחלים כאן אחד אחד. סוג הרשומה הוצג והרשומה 'Rec' תוכנס ללקוח MongoDB באמצעות הפונקציה insertOne עם אובייקט האוסף 'c'. ההכנסה המוצלחת מובילה למשתנה 'תוצאה' המחזיק את ערך ההצלחה בעוד שהמשתנה 'insertErr' יחזיק את ערך הכישלון. ההצהרה 'if' משמשת שוב כדי לבדוק ולהציג את השגיאה בהכנסת רשומה רק אם המשתנה 'insertErr' מחזיק מלבד הערך 'nil'. אחרת, החלק 'else' של ההצהרה יכיל כמה הצהרות Println() כדי להציג את סוג הרשומה שתוכנס, מזהה הרשומה והודעת ההצלחה של החיבור וההוספה שהתרחשו. קוד הגולנג הושלם כעת.

החבילה הראשית
יְבוּא (
'הֶקשֵׁר'
'fmt'
'אתה'
'משקף'
'זְמַן'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
סוּג מבנה MongoField {
שם   מחרוזת ` json: 'רחוב שדה' `
מחרוזת אימייל ` json: 'רחוב שדה' `
גיל    int ` json: 'שדה אינט' `
שכר אינט ` json: 'שדה אינט' `
}
const uri = 'mongodb: // סיסמת משתמש @ מארח מקומי: 27017 / ? maxPoolSize = עשרים & ב =רוב'
func main ( ) {
לקוח, טעות := mongo.Connect ( הקשר.כל ( ) ,אפשרויות.לקוח ( ) .ApplyURI ( סוּג ) )
אם לִטְעוֹת ! = אפס {
fmt.Println ( שגיאת 'Mongo.connect(): ' , טעות )
מערכת יציאה ( אחד )
}
ctx, _ := context.WithTimeout ( הקשר.רקע ( ) , חֲמֵשׁ עֶשׂרֵה * זמן. שני )
c := לקוח. מסד נתונים ( 'חָדָשׁ' ) .אוסף ( 'אדם' )
fmt.Println ( 'סוג אוסף:' , reflect.TypeOf ( ג ) , ' \n ' )
Rec := MongoField {
שֵׁם: 'עֵדֶן' ,
אימייל: 'eden@gmail.com' ,
גיל: ארבע חמש ,
שכר: 50000 }
fmt.Println ( 'סוג הקלטה: ' , reflect.TypeOf ( Rec ) , ' \n ' )
תוצאה, insertErr := c.InsertOne ( ctx, Rec )
אם insertErr ! = אפס {
fmt.Println ( 'InsertOne Error: ' , insertErr )
מערכת יציאה ( אחד )
} אַחֵר {
fmt.Println ( 'סוג תוצאה של InsertOne: ' , reflect.TypeOf ( תוֹצָאָה ) )
newID = result.InsertedID
fmt.Println ( 'מזהה רשומה הוכנס: ' , זיהוי חדש ) )
fmt.Println ( 'רשומות מחוברות והוכנסו בהצלחה!' )
} }


שמור את קוד הגולאנג ופתח את הטרמינל בתוך תיקיית הגולאנג. כעת, השתמש בהוראה 'עבור' עם מילת המפתח 'הפעלה' כדי להפעיל את קובץ הקוד 'main.go'. איתור הבאגים הצליח והאוסף 'אדם' נוצר בהצלחה ב- MongoDB. הפלט מציג את סוג האוסף, סוג הרשומה, סוג התוצאה וה'מזהה' של רשומה.

saedraza @ virtualbox:~ / Golang$ Go Run Main.go
סוג אוסף: * מונגו.אוסף
סוג רשומה: main.MongoField
סוג תוצאה של InsertOne: * mongo.InsertOneResult
מזהה רשומה הוכנס: ObjectID ( '63a8535ac97b4218230664b6' )
רשומות מחוברות והוכנסו בהצלחה.


פתח את המצפן 'MongoDB' בקצה שלך והתחבר למארח המקומי שלו באמצעות 'URI'.


לאחר המעבר במסד הנתונים 'חדש', קיבלנו את האוסף 'אדם' המוצג בסעיף 'מסמכים' יחד עם הרשומה שהוספנו.

סיכום

מדריך זה ממחיש את השימוש בשפת Go להוספת רשומות בלקוח MongoDB באמצעות כלי Visual Studio Code במערכת לינוקס. לשם כך, התקנו את ה-mongodb יחד עם מנהל ההתקן של mongodb עבור 'golang' במערכת. באמצעות שפת Golang, יצרנו קובץ 'go' ב- MongoDB ודנו במגוון החבילות והפונקציות של Golang כדי ליצור חיבור ל- MongoDB ולהכניס רשומות. בסופו של דבר, הדגמנו את התוצאות על מצפן MongoDB שמראה שאתה יכול לחבר כל כלי גולנג ל-MongoDB.