MongoDB کو گولانگ سے کیسے جوڑیں۔

Mongodb Kw Gwlang S Kys Jw Y



بالکل سی زبان کی طرح، گولانگ زبان بھی ایک اوپن سورس لینگویج ہے جسے ونڈوز اور لینکس/یونکس سسٹمز پر ریکارڈ بنانے کے لیے بہت سے ٹولز پر عمل میں لایا جا سکتا ہے۔ C++ اور Java کی طرح، ہم کسی بھی گولانگ ٹول کا استعمال کرتے ہوئے MongoDB کلائنٹ سسٹم اور گو زبان کے درمیان رابطہ قائم کر سکتے ہیں۔ ایسا کرنے کے لیے، ہم اوبنٹو 22.04 میں ایک پروگرام کے لیے ویژول اسٹوڈیو کوڈ ٹول کا استعمال کرتے ہوئے کئی انتہائی اہم اور ضروری اقدامات انجام دیں گے۔ MongoDB کمپاس کے ساتھ کنکشن بنانے سے پہلے، ہم 'go' کے ساتھ MongoDB اور Visual Studio Code کو انسٹال کرتے ہیں اور گو زبان میں آپ کی مدد کرنے کے لیے گائیڈ میں مطلوبہ ایکسٹینشنز شامل کرتے ہیں۔

MongoDB انسٹال کریں۔

ہم نے MongoDB سرور کا 'deb' پیکیج اس کی آفیشل ویب سائٹ سے ڈاؤن لوڈ کیا ہے۔ ٹرمینل پر 'dpkg' کمانڈ ٹول کا استعمال کرتے ہوئے 'Deb' پیکیج کو اوبنٹو میں بھی عمل میں لایا جا سکتا ہے۔







'sudo' حقوق کے ساتھ ٹرمینل پر MongoDB سرور فائل کو انجام دیا اور پاس کوڈ فراہم کیا۔



saeedraza@virtualbox:~$ sudo ڈی پی کے جی -میں mongodb-org-server_6.0.3_amd64.deb


اگر آپ نے Ubuntu کی 'systemctl' ہدایات کو آزمانے کے بعد اپنے آخر میں MongoDB سروس کو غیر فعال پایا، تو آپ اسے بھی اپ ڈیٹ کر سکتے ہیں۔ MongoDB کو چالو کرنے کے لیے، 'start' اور 'enable' کلیدی الفاظ کے ساتھ systemctl ہدایات کو آزمائیں۔

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl فعال منگود
saeedraza@virtualbox:~$ sudo systemctl اسٹیٹس منگوڈ

MongoDB لانچ کریں۔

تنصیب کے بعد، 'mongo' استفسار کا استعمال کرتے ہوئے فوری طور پر MongoDb شیل لانچ کریں۔ کارروائی کے مراحل کو انجام دینے کے لیے 'ایڈمن' ڈیٹا بیس پر جائیں۔

saeedraza@virtualbox:~$ منگو
MongoDB شیل ورژن v5.0.14
منسلک ہو رہا ہے: mongodb: // 127.0.0.1: 27017 / ? کمپریسرز = معذور اور gssapiServiceName =منگوڈ بی
مضمر اجلاس: سیشن { 'id' : UUID ( '34cc8e0f-b6b0-4191-adea-676411f66cf5' ) }
MongoDB سرور ورژن: 6.0.3


ہم createUser() فنکشن کا استعمال کرتے ہوئے ایڈمن کے حقوق کے ساتھ ایک نیا صارف بنا رہے ہیں۔

> منتظم کا استعمال کریں
ڈی بی ایڈمن کو تبدیل کر دیا گیا۔
> db.createUser (
... {
... صارف: 'سعید' ،
... pwd: '12345' ،
... کردار: [ { کردار: 'userAdminAnyDatabase' , db: 'ایڈمن' } ، 'readWriteAnyDatabase' ]

... } )
کامیابی سے شامل صارف: {
'صارف' : 'سعید' ،
'کردار' : [
{
'کردار' : 'userAdminAnyDatabase' ،
'ڈی بی' : 'ایڈمن'
} ،
'readWriteAnyDatabase'
]
}


'auth' فنکشن میں اسناد کا استعمال کرتے ہوئے صارف 'سعید' کو اختیار دیا اور MongoDB کے موجودہ ملکیتی ڈیٹا بیس کو ظاہر کیا۔

> db.auth ( 'سعید' ، '12345' )
ایک
> ڈی بی ایس دکھائیں۔
منتظم 0.000GB
تشکیل 0.000GB
مقامی 0.000GB

گولانگ کے لیے MongoDB ڈرائیور انسٹال کریں۔

بصری اسٹوڈیو کوڈ میں ٹرمینل کھولیں اور 'گولانگ' کے فولڈر میں جائیں جس میں آپ اپنی سورس کوڈ فائلیں شامل کرنا چاہتے ہیں۔ 'go.mod' فائل بنانے کے لیے فولڈر کے نام کے ساتھ 'go mod init' ہدایات کو چلائیں۔ گو لینگوئج کے لیے مونگو ڈی بی ڈرائیور کو 'گو گیٹ' استفسار کے ذریعے لوڈ کریں۔

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


کچھ صورتوں میں، گولانگ کے لیے بھی bson فارمیٹ MongoDB ڈرائیور کو لوڈ کرنے کی ضرورت ہے۔

saeedraza@virtualbox:~/Golang$ جاؤ go.mongodb.org حاصل کریں۔ / منگو ڈرائیور / bson


بغیر کسی ہدایت کے ایکسٹینشن پینل کا استعمال کرتے ہوئے بصری اسٹوڈیو کوڈ میں 'gopls' جیسے ضروری ایکسٹینشن پیکجز کو شامل کرنا یقینی بنائیں۔


'گوپلز' کے ساتھ، گولانگ کو یقینی طور پر انسٹال کرنے کے لیے 'dlv' ٹول کی ضرورت پڑ سکتی ہے۔

گوئنگ کوڈ کی مثال

کوڈ فائل 'main.go' کو کچھ مفید پیکجوں کی درآمد کے ساتھ شروع کیا گیا ہے جو کنکشن کے لیے پورے کوڈ میں استعمال کیے جائیں گے۔ یہاں کل 7 درآمدات کی گئی ہیں۔ پیکجز کو درآمد کرنے کے بعد، ہم نے ایک نیا ڈھانچہ بنایا جس کا نام MongoField ہے جس میں 4 JSON قسم کے ڈیٹا ممبرز ہیں۔ ان میں سے 2 ڈیٹا ممبر سٹرنگز ہیں اور ان میں سے 2 انٹیجرز ہیں۔

اس کے بعد کلائنٹ ایڈریس کے ساتھ ایک مستقل قسم کا متغیر 'uri' کا اعلان کیا گیا ہے یا آپ کو اس میں اپنا لوکل ہوسٹ ایڈریس صارف نام اور پاس ورڈ کے مطابق شامل کرنا ہوگا۔ مین() فنکشنز گولانگ کے کنیکٹ() فنکشن کے استعمال سے شروع ہوتے ہیں تاکہ ایک 'mongo' آبجیکٹ کے ذریعے MongoDB سے رابطہ قائم کیا جا سکے۔ ApplyURI() فنکشن کلائنٹ() فنکشن پر لاگو کرنے کے لیے 'uri' متغیر کو اپنی دلیل کے طور پر لے گا تاکہ میزبان ایڈریس کے ذریعے کنکشن قائم کیا جا سکے۔ کنکشن کی درخواست کرنے کے لیے TODO() فنکشن کو کال کرنے میں سیاق و سباق کا پیکج مرکزی کردار ادا کر رہا ہے۔ اگر بصری اسٹوڈیو کوڈ اور MongoDB کے درمیان کامیابی کے ساتھ کنکشن قائم ہو جاتا ہے، تو کلائنٹ کی طرف سے واپس آنے والے سگنل کو 'کلائنٹ' متغیر میں شامل کر دیا جائے گا۔ دوسری صورت میں، غلطی متغیر 'غلطی' میں محفوظ ہو جائے گی۔

'اگر' بیان اس کے مطابق پیغامات کو ظاہر کرنے کے لئے یہاں ہے۔ اگر 'غلطی' متغیر کو 'nil' کے علاوہ کوئی قدر ملی ہے، تو فارمیٹ پیکیج 'fmt' پیکیج سے Println() فنکشن آؤٹ پٹ اسکرین، ٹرمینل پر اس غلطی کو پرنٹ کرے گا۔ اگر خرابی واقع ہوتی ہے تو 'OS' پیکیج پروگرام سے باہر نکلنے کے لیے استعمال کیا جائے گا۔ سیاق و سباق کے پیکیج کو یہاں دوبارہ استعمال کیا گیا ہے تاکہ اس پروگرام کے ذریعے کنکشن قائم ہونے کے ٹائم آؤٹ کا انتظام کیا جا سکے۔ مخصوص ٹائم آؤٹ ویلیو 'ctx' کے لیے، ہمارا پروگرام عمل میں آئے گا۔ Golang کے ذریعے کلائنٹ MongoDB میں ایک نیا ڈیٹا بیس 'New' کے ساتھ ایک نیا مجموعہ 'Person' بنایا جائے گا۔ Println() عکاسی پیکیج سے 'TypeOf' فنکشن کا استعمال کرتے ہوئے مجموعہ 'c' کی قسم کو ظاہر کرے گا۔

MongoField ڈیٹا ممبرز کی ساخت کا استعمال کرتے ہوئے ایک ریکارڈ 'Rec' بنایا گیا جو یہاں ایک ایک کرکے شروع کیا جاتا ہے۔ ریکارڈ کی قسم ظاہر ہو گئی اور ریکارڈ 'Rec' کلائنٹ MongoDB میں insertOne فنکشن کا استعمال کرتے ہوئے کلیکشن آبجیکٹ 'c' کے ساتھ داخل کیا جائے گا۔ کامیاب اندراج ایک 'نتیجہ' متغیر کی طرف لے جاتا ہے جس میں کامیابی کی قدر ہوتی ہے جبکہ 'insertErr' متغیر ناکامی کی قدر کو رکھتا ہے۔ ریکارڈ داخل کرنے میں غلطی کو چیک کرنے اور ظاہر کرنے کے لیے 'if' اسٹیٹمنٹ کو دوبارہ استعمال کیا جاتا ہے صرف اسی صورت میں جب 'insertErr' متغیر 'nil' ویلیو کے علاوہ رکھتا ہو۔ بصورت دیگر، بیان کے 'دوسرے' حصے میں کچھ Println() سٹیٹمنٹس ہوں گے تاکہ داخل کیے جانے والے ریکارڈ کی قسم، ریکارڈ ID، اور کنکشن اور داخل ہونے کے لیے کامیابی کا پیغام دکھایا جا سکے۔ گولانگ کوڈ اب مکمل ہو گیا ہے۔

اہم پیکیج
درآمد (
'خیال، سیاق'
'fmt'
'تم'
'عکاسی'
'وقت'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
قسم مونگو فیلڈ ڈھانچہ {
نام کی تار ` json: 'فیلڈ Str' `
ای میل سٹرنگ ` json: 'فیلڈ Str' `
عمر int ` json: 'فیلڈ انٹ' `
تنخواہ int ` json: 'فیلڈ انٹ' `
}
const uri = 'mongodb: // صارف: پاس ورڈ @ localhost: 27017 / ? زیادہ سے زیادہ پول سائز = بیس اور میں =اکثریت'
فنک مین ( ) {
کلائنٹ، غلطی := mongo.Connect ( سیاق و سباق ( ) ,اختیارات۔کلائنٹ ( ) .ApplyURI ( قسم ) )
اگر غلطی ! = صفر {
fmt.Println ( 'Mongo.connect() خرابی: ' ، غلطی )
os. باہر نکلیں۔ ( ایک )
}
ctx, _ := context.WithTimeout ( تناظر۔ پس منظر ( ) , پندرہ * وقت.دوسرا )
c := کلائنٹ ڈیٹا بیس ( 'نئی' ) .مجموعہ ( 'شخص' )
fmt.Println ( 'مجموعہ کی قسم:' , reflect.TypeOf ( c ) , ' \n ' )
Rec := مونگو فیلڈ {
نام: 'EDEN' ,
ای میل: 'eden@gmail.com' ,
عمر: چار پانچ ,
تنخواہ: 50000 }
fmt.Println ( 'ریکارڈ کی قسم:' , reflect.TypeOf ( Rec ) , ' \n ' )
نتیجہ، insertErr := c.InsertOne ( ctx، Rec )
اگر داخل کریں ! = صفر {
fmt.Println ( 'InsertOne Error:' داخل کریں )
os. باہر نکلیں۔ ( ایک )
} اور {
fmt.Println ( 'InsertOne نتیجہ کی قسم:' , reflect.TypeOf ( نتیجہ ) )
newID = result.InsertedID
fmt.Println ( 'داخل کردہ ریکارڈ ID:' ، نئی آئی ڈی ) )
fmt.Println ( 'کامیابی کے ساتھ منسلک اور ریکارڈ داخل کر دیا گیا!' )
} }


گولانگ کوڈ کو محفوظ کریں اور گولانگ فولڈر میں ٹرمینل کھولیں۔ اب، 'main.go' کوڈ فائل کو چلانے کے لیے 'رن' کی ورڈ کے ساتھ 'go' ہدایات کا استعمال کریں۔ ڈیبگنگ کامیاب رہی اور MongoDB میں 'Person' کا مجموعہ کامیابی کے ساتھ تیار کیا گیا ہے۔ آؤٹ پٹ جمع کرنے کی قسم، ریکارڈ کی قسم، نتیجہ کی قسم، اور ریکارڈ کی 'ID' دکھا رہا ہے۔

سعیدرضا @ ورچوئل باکس: ~ / Golang$ Go Run Main.go
جمع کرنے کی قسم: * منگو۔مجموعہ
ریکارڈ کی قسم: main.MongoField
InsertOne نتیجہ کی قسم: * mongo.InsertOneResult
داخل کردہ ریکارڈ ID: ObjectID ( '63a8535ac97b4218230664b6' )
کامیابی کے ساتھ منسلک اور ریکارڈز داخل کیے گئے۔


اپنے آخر میں 'MongoDB' کمپاس کھولیں اور 'URI' کا استعمال کرتے ہوئے اس کے مقامی میزبان سے جڑیں۔


'نئے' ڈیٹابیس کے اندر جانے کے بعد، ہمیں 'دستاویزات' سیکشن میں ظاہر کردہ مجموعہ 'شخص' کے ساتھ اس ریکارڈ کے ساتھ ملا ہے جو ہم نے شامل کیا ہے۔

نتیجہ

یہ گائیڈ لینکس سسٹم میں ویژول اسٹوڈیو کوڈ ٹول کا استعمال کرتے ہوئے MongoDB کلائنٹ میں ریکارڈز شامل کرنے کے لیے گو زبان کے استعمال کی وضاحت کرتا ہے۔ اس کے لیے، ہم نے نظام میں 'گولانگ' کے لیے mongodb ڈرائیور کے ساتھ mongodb انسٹال کیا ہے۔ گولانگ زبان کا استعمال کرتے ہوئے، ہم نے MongoDB میں ایک 'go' فائل بنائی ہے اور MongoDB سے کنکشن بنانے اور ریکارڈ داخل کرنے کے لیے Golang کے مختلف قسم کے پیکجز اور افعال پر تبادلہ خیال کیا ہے۔ آخر میں، ہم نے MongoDB کمپاس پر نتائج کا مظاہرہ کیا ہے جو ظاہر کرتا ہے کہ آپ کسی بھی Golang ٹول کو MongoDB سے جوڑ سکتے ہیں۔