গোলংয়ের সাথে মঙ্গোডিবি কীভাবে সংযুক্ত করবেন

Golanyera Sathe Mangodibi Kibhabe Sanyukta Karabena



সি ভাষার মতোই, গোলং ভাষাও একটি ওপেন-সোর্স ভাষা যা রেকর্ড তৈরি করার জন্য উইন্ডোজ এবং লিনাক্স/ইউনিক্স সিস্টেমের অনেক সরঞ্জামে চালানো যেতে পারে। C++ এবং Java এর মত, আমরা যেকোন গোল্যাং টুল ব্যবহার করে একটি MongoDB ক্লায়েন্ট সিস্টেম এবং Go ভাষার মধ্যে সংযোগ স্থাপন করতে পারি। এটি করার জন্য, আমরা একটি প্রোগ্রামের জন্য ভিজ্যুয়াল স্টুডিও কোড টুল ব্যবহার করে উবুন্টু 22.04-এ বেশ কিছু গুরুত্বপূর্ণ এবং প্রয়োজনীয় পদক্ষেপগুলি সম্পাদন করব। MongoDB কম্পাসের সাথে সংযোগ করার আগে, আমরা Go ভাষায় আপনাকে সাহায্য করার জন্য 'go' এবং প্রয়োজনীয় এক্সটেনশন সহ MongoDB এবং ভিজ্যুয়াল স্টুডিও কোড ইনস্টল করার প্রবণতা রাখি।

MongoDB ইনস্টল করুন

আমরা MongoDB সার্ভারের 'deb' প্যাকেজটি এর অফিসিয়াল ওয়েবসাইট থেকে ডাউনলোড করেছি। 'ডেব' প্যাকেজটি টার্মিনালে 'dpkg' কমান্ড টুল ব্যবহার করে উবুন্টুতেও কার্যকর করা যেতে পারে।







টার্মিনালে 'sudo' অধিকার সহ MongoDB সার্ভার ফাইলটি চালানো হয়েছে এবং একটি পাসকোড প্রদান করেছে৷



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


স্থিতি পরীক্ষা করার জন্য উবুন্টুর 'systemctl' নির্দেশনা চেষ্টা করার পরে আপনি যদি MongoDB পরিষেবাটিকে আপনার শেষে নিষ্ক্রিয় খুঁজে পান তবে আপনি এটিও আপডেট করতে পারেন। MongoDB সক্রিয় করতে, 'start' এবং 'enable' কীওয়ার্ড দিয়ে systemctl নির্দেশটি ব্যবহার করে দেখুন।

saeedraza@virtualbox:~$ sudo systemctl start mongod
saeedraza@virtualbox:~$ sudo systemctl সক্ষম মঙ্গোড
saeedraza@virtualbox:~$ sudo systemctl অবস্থা মঙ্গোড

MongoDB চালু করুন

ইনস্টলেশনের পরে, 'মঙ্গো' ক্যোয়ারী ব্যবহার করে দ্রুত MongoDb শেল চালু করুন। অগ্রগতির পদক্ষেপগুলি সম্পাদন করতে 'প্রশাসক' ডাটাবেসে স্যুইচ করুন৷

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 অ্যাডমিনে স্যুইচ করা হয়েছে
> db.createUser (
... {
... ব্যবহারকারী: 'সাঈদ' ,
... pwd: '12345' ,
... ভূমিকা: [ { ভূমিকা: 'userAdminAnyDatabase' , ডিবি: 'অ্যাডমিন' } , 'ReadWriteAnyDatabase' ]

... } )
সফলভাবে ব্যবহারকারী যোগ করা হয়েছে: {
'ব্যবহারকারী' : 'সাঈদ' ,
'ভূমিকা' : [
{
'ভূমিকা' : 'userAdminAnyDatabase' ,
'ডিবি' : 'অ্যাডমিন'
} ,
'ReadWriteAnyDatabase'
]
}


'প্রমাণ' ফাংশনে শংসাপত্র ব্যবহার করে 'সাঈদ' ব্যবহারকারীকে অনুমোদন করেছে এবং MongoDB-এর বর্তমান মালিকানাধীন ডাটাবেসগুলি প্রদর্শন করেছে৷

> db.auth ( 'সাঈদ' , '12345' )
এক
> dbs দেখান
অ্যাডমিন   0.000GB
কনফিগার 0.000GB
স্থানীয় 0.000GB

গোলংয়ের জন্য মঙ্গোডিবি ড্রাইভার ইনস্টল করুন

ভিজ্যুয়াল স্টুডিও কোডে টার্মিনাল খুলুন এবং 'গোলাং' ফোল্ডারের মধ্যে যান যেখানে আপনি আপনার সোর্স কোড ফাইলগুলি যোগ করতে চেয়েছিলেন। একটি 'go.mod' ফাইল তৈরি করতে ফোল্ডারের নামের সাথে 'go mod init' নির্দেশটি চালান। 'go get' কোয়েরির মাধ্যমে Go ভাষার জন্য MongoDB ড্রাইভার লোড করুন।

saeedraza@virtualbox:~/গোলাং$ Go mod init Golang


কিছু ক্ষেত্রে, গোলং-এর জন্যও bson ফরম্যাট MongoDB ড্রাইভার লোড করতে হবে।

saeedraza@virtualbox:~/গোলাং$ যান go.mongodb.org / মঙ্গো-চালক / bson


কোনো নির্দেশনা ব্যবহার না করেই এক্সটেনশন প্যানেল ব্যবহার করে ভিজ্যুয়াল স্টুডিও কোডে “gopls”-এর মতো প্রয়োজনীয় এক্সটেনশন প্যাকেজ যোগ করা নিশ্চিত করুন।


'গোপলস' এর সাথে, গোল্যাং এর জন্য 'dlv' টুলটি নিশ্চিতভাবে ইনস্টল করার প্রয়োজন হতে পারে।

যাচ্ছে কোড উদাহরণ

'main.go' কোড ফাইলটি সংযোগের জন্য পুরো কোডে ব্যবহার করা কিছু দরকারী প্যাকেজ আমদানির সাথে শুরু করা হয়েছে। এখানে মোট ৭টি আমদানি হয়েছে। প্যাকেজগুলি আমদানি করার পর, আমরা মঙ্গোফিল্ড নামে একটি নতুন কাঠামো তৈরি করেছি যার মধ্যে 4 জন JSON টাইপ ডেটা সদস্য রয়েছে৷ এই ডেটা সদস্যদের মধ্যে 2 স্ট্রিং এবং তাদের মধ্যে 2টি পূর্ণসংখ্যা।

এর পরে, একটি ক্লায়েন্ট ঠিকানার সাথে একটি ধ্রুবক ধরণের পরিবর্তনশীল 'uri' ঘোষণা করা হয়েছে বা আপনাকে ব্যবহারকারীর নাম এবং পাসওয়ার্ড অনুসারে এটিতে আপনার স্থানীয় হোস্ট ঠিকানা যোগ করতে হবে। একটি 'মঙ্গো' অবজেক্টের মাধ্যমে MongoDB-এর সাথে সংযোগ করতে গোলং-এর কানেক্ট() ফাংশন ব্যবহার করে প্রধান() ফাংশন শুরু হয়। ApplyURI() ফাংশন ক্লায়েন্ট() ফাংশনে প্রয়োগ করার জন্য 'uri' ভেরিয়েবলটিকে তার যুক্তি হিসাবে গ্রহণ করবে যাতে একটি হোস্ট ঠিকানার মাধ্যমে একটি সংযোগ স্থাপন করা যায়। প্রসঙ্গ প্যাকেজ একটি সংযোগের অনুরোধের জন্য TODO() ফাংশন কল করার জন্য প্রধান ভূমিকা পালন করছে। ভিজ্যুয়াল স্টুডিও কোড এবং MongoDB-এর মধ্যে সংযোগটি সফলভাবে প্রতিষ্ঠিত হলে, ক্লায়েন্ট-রিটার্ন সিগন্যাল 'ক্লায়েন্ট' ভেরিয়েবলে যোগ করা হবে; অন্যথায়, ত্রুটিটি 'ভ্রান্তি' ভেরিয়েবলে সংরক্ষণ করা হবে।

'if' বিবৃতিটি সেই অনুযায়ী বার্তাগুলি প্রদর্শন করার জন্য এখানে রয়েছে। যদি 'err' ভেরিয়েবলটি 'nil' ছাড়া অন্য একটি মান পায়, তাহলে ফরম্যাট প্যাকেজ 'fmt' প্যাকেজ থেকে Println() ফাংশনটি আউটপুট স্ক্রিনে, টার্মিনালে সেই ত্রুটিটি মুদ্রণ করবে। ত্রুটি ঘটলে প্রোগ্রাম থেকে প্রস্থান করতে 'OS' প্যাকেজ ব্যবহার করা হবে। এই প্রোগ্রামের মাধ্যমে সংযোগ স্থাপনের সময়সীমা পরিচালনা করতে প্রসঙ্গ প্যাকেজটি আবার এখানে ব্যবহার করা হয়েছে। নির্দিষ্ট টাইমআউট মান 'ctx' এর জন্য, আমাদের প্রোগ্রামটি কার্যকর করা হবে। গোলং এর মাধ্যমে ক্লায়েন্ট মঙ্গোডিবি-তে একটি নতুন ডাটাবেস 'নতুন' সহ একটি নতুন সংগ্রহ 'ব্যক্তি' তৈরি করা হবে। Println() প্রতিফলিত প্যাকেজ থেকে 'TypeOf' ফাংশন ব্যবহার করে 'c' সংগ্রহের ধরন প্রদর্শন করবে।

মঙ্গোফিল্ড ডেটা মেম্বার স্ট্রাকচার ব্যবহার করে একটি রেকর্ড 'Rec' তৈরি করা হয়েছে যা এখানে একে একে শুরু করা হয়েছে। রেকর্ডের ধরনটি প্রদর্শিত হয়েছে এবং সংগ্রহ বস্তু 'c' সহ insertOne ফাংশন ব্যবহার করে ক্লায়েন্ট MongoDB-এ রেকর্ড 'Rec' ঢোকানো হবে। সফল সন্নিবেশ সফলতার মান ধরে একটি 'ফলাফল' ভেরিয়েবলের দিকে নিয়ে যায় যখন 'insertErr' ভেরিয়েবল ব্যর্থতার মান ধরে রাখে। যদি 'insertErr' ভেরিয়েবলটি 'nil' মান ব্যতীত অন্য ধারণ করে তবেই একটি রেকর্ড সন্নিবেশ করার ত্রুটি পরীক্ষা করতে এবং প্রদর্শন করতে 'if' বিবৃতিটি আবার ব্যবহার করা হয়। অন্যথায়, বিবৃতির 'অন্য' অংশে কিছু Println() স্টেটমেন্ট ধারণ করা হবে যাতে সন্নিবেশ করানো রেকর্ডের ধরন, রেকর্ড আইডি এবং সংযোগ এবং সন্নিবেশের সাফল্যের বার্তা প্রদর্শিত হয়। গোলং কোড এখন সম্পূর্ণ।

প্যাকেজ প্রধান
আমদানি (
'প্রসঙ্গ'
'fmt'
'আপনি'
'প্রতিফলিত করা'
'সময়'
'go.mongodb.org/mongo-driver/mongo'
'go.mongodb.org/mongo-driver/mongo/options'
)
টাইপ মঙ্গোফিল্ড কাঠামো {
নাম   স্ট্রিং ` json: 'ক্ষেত্র Str' `
ইমেল  স্ট্রিং ` json: 'ক্ষেত্র Str' `
বয়স    int ` json: 'ক্ষেত্র int' `
বেতন int ` json: 'ক্ষেত্র int' `
}
const uri = “mongodb: // ব্যবহারকারী পাসওয়ার্ড @ স্থানীয় হোস্ট: 27017 / ? maxPoolSize = বিশ এবং ভিতরে = সংখ্যাগরিষ্ঠ'
ফাংশন প্রধান ( ) {
ক্লায়েন্ট, err := mongo.Connect ( প্রসঙ্গ ( ) ,বিকল্প।ক্লায়েন্ট ( ) .ApplyURI ( প্রকার ) )
যদি ভুল ! = শূন্য {
fmt.Println ( 'Mongo.connect() ত্রুটি: ' , ভুল )
os. প্রস্থান করুন ( এক )
}
ctx, _ := context.WithTimeout ( প্রসঙ্গ। পটভূমি ( ) , পনের * সময়।সেকেন্ড )
c := ক্লায়েন্ট। ডেটাবেস ( 'নতুন' ) .সংগ্রহ ( 'ব্যক্তি' )
fmt.Println ( 'সংগ্রহের ধরন:' , প্রতিফলিত. প্রকার ( ) , ' \n ' )
Rec := মঙ্গোফিল্ড {
নাম: 'EDEN' ,
ইমেইল: 'eden@gmail.com' ,
বয়স: চার পাঁচ ,
বেতন: 50000 }
fmt.Println ( 'রেকর্ড টাইপ: ' , প্রতিফলিত. প্রকার ( Rec ) , ' \n ' )
ফলাফল, insertErr := c.InsertOne ( ctx, Rec )
যদি সন্নিবেশ করুন ! = শূন্য {
fmt.Println ( 'একটি ত্রুটি সন্নিবেশ করান:' , সন্নিবেশ করুন )
os. প্রস্থান করুন ( এক )
} অন্য {
fmt.Println ( 'একটি ফলাফলের প্রকার সন্নিবেশ করুন:' , প্রতিফলিত. প্রকার ( ফলাফল ) )
newID = result.InsertedID
fmt.Println ( 'ঢোকানো রেকর্ড আইডি:' , নতুন আইডি ) )
fmt.Println ( 'সফলভাবে সংযুক্ত এবং রেকর্ড ঢোকানো হয়েছে!' )
} }


গোলং কোড সংরক্ষণ করুন এবং গোলং ফোল্ডারের মধ্যে টার্মিনাল খুলুন। এখন, 'main.go' কোড ফাইলটি চালানোর জন্য 'রান' কীওয়ার্ডের সাথে 'go' নির্দেশনাটি ব্যবহার করুন। ডিবাগিং সফল হয়েছে এবং MongoDB-তে 'ব্যক্তি' সংগ্রহ সফলভাবে তৈরি করা হয়েছে। আউটপুট সংগ্রহের ধরন, রেকর্ডের ধরন, ফলাফলের ধরন এবং রেকর্ডের 'আইডি' দেখাচ্ছে।

সাইদরাজা @ ভার্চুয়ালবক্স:~ / Golang$ Go Run Main.go
সংগ্রহের ধরন: * mongo.সংগ্রহ
রেকর্ডের ধরন: main.MongoField
InsertOne ফলাফলের ধরন: * mongo.InsertOneResult
ঢোকানো রেকর্ড আইডি: ObjectID ( '63a8535ac97b4218230664b6' )
সফলভাবে সংযুক্ত এবং ঢোকানো রেকর্ড.


আপনার শেষে 'MongoDB' কম্পাস খুলুন এবং 'URI' ব্যবহার করে এর স্থানীয় হোস্টের সাথে সংযোগ করুন।


'নতুন' ডাটাবেসের মধ্যে যাওয়ার পরে, আমরা যে রেকর্ডটি যুক্ত করেছি তার সাথে 'ডকুমেন্টস' বিভাগে প্রদর্শিত 'ব্যক্তি' সংগ্রহ পেয়েছি।

উপসংহার

এই নির্দেশিকা লিনাক্স সিস্টেমে একটি ভিজ্যুয়াল স্টুডিও কোড টুল ব্যবহার করে MongoDB ক্লায়েন্টে রেকর্ড যোগ করতে Go ভাষার ব্যবহারকে ব্যাখ্যা করে। এর জন্য, আমরা সিস্টেমে 'গোলাং' এর জন্য মঙ্গোডবি ড্রাইভারের সাথে মঙ্গোডবি ইনস্টল করেছি। একটি গোলাং ভাষা ব্যবহার করে, আমরা MongoDB-তে একটি 'go' ফাইল তৈরি করেছি এবং MongoDB-এর সাথে সংযোগ তৈরি করতে এবং রেকর্ড সন্নিবেশ করতে গোল্যাং-এর বিভিন্ন প্যাকেজ এবং ফাংশন নিয়ে আলোচনা করেছি। শেষ পর্যন্ত, আমরা মঙ্গোডিবি কম্পাসে ফলাফলগুলি প্রদর্শন করেছি যা দেখায় যে আপনি মঙ্গোডিবি-তে যে কোনও গোলং টুল সংযোগ করতে পারেন।