মোঙ্গোডিবি ক্লায়েন্ট সম্পর্কে আপনার যা জানা দরকার Everything



এই নিবন্ধটি আপনাকে মঙ্গোডিবি ক্লায়েন্টের সমস্ত বৈশিষ্ট্য এবং ব্যবহারগুলির সাথে একটি বিশদ এবং ব্যাপক জ্ঞান সরবরাহ করবে।

আপনি যদি কিছু সময়ের জন্য আপেক্ষিক ডাটাবেস ম্যানেজমেন্ট সিস্টেমের কোনও রূপে থাকেন তবে আপনি সম্ভবত এর নামটি দেখতে পেয়েছেন । ২০০৯ সালে প্রথম প্রবর্তিত, আজ মোঙ্গোডিবি শিল্পের মধ্যে অন্যতম একটি জনপ্রিয় রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম। বাজারে মাইএসকিএল এর মতো পুরানো রিলেশনাল ডাটাবেস সফ্টওয়্যার পরিচালকদের উপস্থিতি থাকা সত্ত্বেও এর উন্মাদ জনপ্রিয়তার পেছনের প্রধান কারণটি সংখ্যার বিস্তৃতি এবং দুর্দান্ত বহুমুখিতা যা টেবিলে নিয়ে আসে। মঙ্গোডিবির ব্যবহার অনেকগুলি চাহিদা মুছে ফেলে, যার মধ্যে একটি হ'ল ডেটাবেস তৈরি করা এবং প্রতিবার নতুন প্রকল্প শুরু হওয়ার সাথে সাথে ডেটা টাইপ সংজ্ঞায়িত করা প্রয়োজন। মঙ্গোডিবি ক্লায়েন্ট নিবন্ধের এজেন্ডা:





তবে মঙ্গোডিবি থেকে সর্বাধিক কার্যকারিতা অর্জনের জন্য মঙ্গোডিবি ক্লায়েন্টের সাথে পরিচিত হওয়া প্রয়োজন এবং এই নিবন্ধে আমরা কেবল এটি নিয়ে আলোচনা করব।

মঙ্গোডিবি ক্লায়েন্টের পূর্বশর্ত

এই নিবন্ধটি সম্পূর্ণরূপে অর্ডার করার জন্য আপনাকে প্রথমে নিম্নলিখিত শর্তগুলি পূরণ করতে হবে।



আপনার সিস্টেমে ইতিমধ্যে একটি আইডিই উপস্থিত রয়েছে।
জাভা ডেভেলপমেন্ট কিট বা জেডিকে সংস্করণ ১.৮ এবং এর উপরে জাভাওয়াহোম সঠিকভাবে কনফিগার করা হয়েছে।
ডকার বা মঙ্গোডিবি ইনস্টল করা আছে।
অ্যাপাচি মাভেন সংস্করণ 3.5.3 এবং তার বেশি।

এই গাইডটিতে আমরা যে আর্কিটেকচার তৈরি করেছি এবং ব্যবহার করেছি তা হ'ল সহজতম একটি। যখন মৃত্যুদন্ড কার্যকর করা হয় ব্যবহারকারী সহজেই একটি তালিকায় ডেটা এবং উপাদান যুক্ত করতে পারেন, এর পরে এটি স্বয়ংক্রিয়ভাবে ডাটাবেসে আপডেট হবে।

মঙ্গোডিবি ক্লায়েন্ট লোগো



এর সাথে, আমরা নিশ্চিত করেছি যে ডেটা এবং সার্ভারের মধ্যে সমস্ত যোগাযোগ JSON এ রয়েছে এবং সমস্ত ডেটা মংগোডিবিতে সংরক্ষিত রয়েছে।

শুরু হচ্ছে

এই প্রকল্পটি শুরু করার জন্য, নীচে বর্ণিত পদক্ষেপগুলি অনুসরণ করুন।

পদক্ষেপ # 1: মাভেনে প্রকল্প তৈরি করা হচ্ছে

প্রথম পদক্ষেপটি সর্বদা একটি নতুন প্রকল্প তৈরি করা এবং এটি করার জন্য, নিম্নলিখিত কোডটি ব্যবহার করুন।

mvn io.quarkus: কোয়ার্কাস-মাভেন-প্লাগইন: 0.22.0: create -DprojectGroupId = org.acme -DprojectArtifactId = ব্যবহার করে-মংডোব-ক্লায়েন্ট -ডাক্লাসনাম = 'org.acme.rest.json.FruitResource' -Dpath = '/ ফল '-ডেক্সটেনশনস =' রিসেটেসি-জসনব, মঙ্গডব-ক্লায়েন্ট '

আপনি উপরের কমান্ডটি চালানোর সময়, IDE আপনার সিস্টেমে JSON-B, মঙ্গোডিবি পাশাপাশি RESTEasy / JAX-RS ক্লায়েন্টগুলি আমদানি করবে।

পদক্ষেপ 2 নিয়ে এগিয়ে চলছে।

পদক্ষেপ # 2: আপনার প্রথম JSON বিশ্রাম পরিষেবা যুক্ত করা হচ্ছে

এটি করার জন্য, নীচের কোডটি ব্যবহার করুন। প্যাকেজ org.acme.rest.json আমদানি java.util.Objects পাবলিক ক্লাস ফল - ব্যক্তিগত স্ট্রিং নাম ব্যক্তিগত স্ট্রিং বিবরণ পাবলিক ফল ()}} পাবলিক ফল (স্ট্রিং নাম, স্ট্রিং বিবরণ) {this.name = নাম this.description = বিবরণ } পাবলিক স্ট্রিং getName () {রিটার্ন নাম} পাবলিক শূন্য setName (স্ট্রিং নাম) {this.name = নাম} পাবলিক স্ট্রিং getDescript () {ফেরতের বিবরণ} পাবলিক শূন্য সেটডেস্ক্রিপশন (স্ট্রিং বিবরণ) {this.description = বিবরণ} @ ওভাররাইড পাবলিক বুলিয়ান সমান (অবজেক্ট অবজেক্ট) {যদি (! (اعتراض উদাহরণস্বরূপ ফল)) false মিথ্যা ফেরত দাও} ফল অন্য = (ফল) ওজেক্ট অবজেক্টস.এককলস (অন্যান্য নাম, this.name)} @ ওভাররাইড পাবলিক ইন হ্যাশকোড () {রিটার্ন অবজেক্টস.হ্যাশ (এটির নাম)}

উপরের উদাহরণ সহ, আমরা প্রথমে ফল তৈরি করেছি যা পরে প্রোগ্রামে ব্যবহৃত হবে।

এরপরে আমাদের org.acme.rest.json.F ફ્રট সার্ভিস ফাইল তৈরি করতে হবে যা আমাদের অ্যাপ্লিকেশনটির ব্যবহারকারী স্তর হবে। এটি করার জন্য, নীচের কোডটি ব্যবহার করুন।

কখন এটি ব্যবহার করবেন। জাভাতে
প্যাকেজ org.acme.rest.json আমদানি com.mongodb.client.MongoClient আমদানি com.mongodb.client.MongoClay আমদানি com.mongodb.client.MongoCursor আমদানি org.bson. ডকুমেন্ট আমদানি javax.enterprise.context. অ্যাপ্লিকেশনসকোপড আমদানি javax.inject .আমিটি আমদানি করুন java.util.ArrayList আমদানি java.util.List @ অ্যাপ্লিকেশনসকোপড সর্বজনীন শ্রেণীর ফলমূল সার্ভিস {@ ইনজেক্ট মোঙ্গোপ্লায়েন্ট মোঙ্গোস্লাইভ পাবলিক তালিকা তালিকা () list তালিকার তালিকা = নতুন অ্যারেলিস্ট () মঙ্গো কার্সার কার্সার = গেট কালেকশন () খুঁজে বের করুন () পুনরুক্তি করুন ()। ) চেষ্টা করুন {जबकि (কার্সার.হ্যাসনেক্সট ()) {ডকুমেন্ট ডকুমেন্ট = কার্সার। এনেক্সট () ফলের ফল = নতুন ফল () फ्रুট.সেটনাম (ডকুমেন্ট.সেটস্ট্রিং ('নাম')) ফ্রুট.সেট বিবরণ (ডকুমেন্ট.সেটস্ট্রিং ('বর্ণনা) ')) list.add (ফল)}} অবশেষে {কার্সার.ক্লোজ ()} রিটার্নের তালিকা} পাবলিক শূন্য অ্যাড (ফল ফল) {ডকুমেন্ট ডকুমেন্ট = নতুন ডকুমেন্ট ()। অ্যাপেন্ড (' নাম ', ফ্রুট.নেট ()) .পেন্ড ('বর্ণনা', ফল.জেট ডেসক্রিপশন ()) গ্যালকোলেকশন ()। ইনসার্টওন (ডকুমেন্ট)} প্রাইভেট মঙ্গো কালেকশন গ্যালকোলেশন () {রিটার্ন মঙ্গো-ক্লায়েন্ট.জেট ডেটাবেস ('ফল') পান লেকশন ('ফল')} our এখন আমাদের প্রয়োজন অনুসারে org.acme.rest.json.FruitResource ক্লাসটি সম্পাদনা করতে হবে। এটি করার জন্য, নীচের কোডটি ব্যবহার করুন। @ পাথ ('/ ফলস') @ প্রোডাক্টস (মিডিয়াটাইপ.এপিপিএলিকেশন_জেএসএসন) @ গণমাধ্যম (মিডিয়াটাইপ.এপিপিএলিকেশন_জেএসএন) পাবলিক ক্লাস ফলের রিসোর্স {@ ইনজেক্ট ফ্রুট সার্ভিস ফলের পরিষেবা @ জিইটি পাবলিক লিস্ট লিস্ট () {ফেরত ফলের সেবা.লিস্ট () {@ পোষ্ট পাবলিক লিস্ট যুক্ত করুন (ফলের ফল) {ফলের পরিষেবাগুলি (অ্যাড) (ফলের) রিটার্নের তালিকা ()}}

পদক্ষেপ 3 নিয়ে এগিয়ে চলছে।

পদক্ষেপ # 3: মঙ্গোডিবি ডাটাবেস কনফিগার করা

মঙ্গোডিবি ডাটাবেস কনফিগার করার জন্য সিনট্যাক্সের পাশাপাশি মানক কোডটি নীচে দেওয়া হয়েছে।

# দুটি নোডের প্রতিলিপি সেটের জন্য মঙ্গোডিবি ক্লায়েন্ট কনফিগার করুন Quarkus.mongodb.connection-string = mongodb: // mongo1: 27017, mongo2: 27017

আমাদের ক্ষেত্রে, আমরা ডাটাবেস কনফিগার করতে নিম্নলিখিত কোডটি ব্যবহার করব।

# দুটি নোডের একটি প্রতিরূপ সেট কোয়ার্কাসের জন্য মঙ্গোডিবি ক্লায়েন্টকে কনফিগার করুন ong মংডোডব্যাক। সংযোগ-স্ট্রিং = মোংডব: // লোকালহোস্ট: 27017

পদক্ষেপ 4 নিয়ে এগিয়ে চলছে।

পদক্ষেপ # 4: কনফিগার করা মংগোডিবি ডাটাবেস চলছে

পরবর্তী পদক্ষেপটি হ'ল আমরা সবে তৈরি মঙ্গোডিবি ডাটাবেস চালাচ্ছি। এটি করার জন্য, নীচের কোডটি ব্যবহার করুন।

ডকার রান -ti --rm -p 27017: 27017 মঙ্গো: 4.0

পদক্ষেপ 5 নিয়ে এগিয়ে চলছে।

পদক্ষেপ # 5: সামনের প্রান্তটি করা

এখন যেহেতু অ্যাপ্লিকেশনটির ব্যাকএন্ডে সমস্ত কাজ শেষ হয়েছে, আসুন আমাদের অ্যাপ্লিকেশনটির সামনের প্রান্তটি কোড করতে ব্যবহৃত কোডটি একবার দেখে নেওয়া যাক।

প্যাকেজ org.acme.rest.json আমদানি io.quarkus.mongodb.ReactiveMongoClient আমদানি io.quarkus.mongodb.RacacMMoMoCલેક્શન আমদানি org.bson. ডকুমেন্ট আমদানি javax.enterPress.context.ApplicationScoped আমদানি javax.inava.Inject আমদানি আমদানি java.util.concurrent.CompletionStage @ অ্যাপ্লিকেশনসস্কোড পাবলিক ক্লাস রিঅ্যাকটিভফ্রুট সার্ভিস {@ ইনজেক্ট রিঅ্যাকটিভমঙ্গোক্লায়েন্ট মঙ্গোচ্লায়েন্ট পাবলিক কমপ্লিটসটেস্ট লিস্ট () {রিটার্ন গ্যালক্লেশন () ফাইন্ড () ম্যাপ (ডক -> {ফলের ফল = নতুন ফল () ফল.সেটনেম doc.getString ('name')) fruit.setDescript (doc.getString ('বর্ণনা')) রিটার্ন ফল})। toList ()। চালান ()} পাবলিক কমপ্লিটসটেজ অ্যাড (ফলের ফল) {ডকুমেন্ট ডকুমেন্ট = নতুন ডকুমেন্ট () .পেনড ('নাম', ফল.জেটনেম ()) .পেন্ড ('বিবরণ', ফল.জিট ডেসক্রিপশন ()) রিটার্ন গিটক্লেশন ()। ইনসার্টওন (ডকুমেন্ট)} প্রাইভেট রিএ্যাকটিভমঙ্গো কালেকশন গিটক্লেশন () {রিটার্ন মঙ্গোপ্লাইট.জেট ডেটাবেস ('ফল') ) .get সংগ্রহ ('ফল')}} প্যাকেজ org.acme.rest.json আমদানি javax.inject.Inject আমদানি javax.ws.rs। * আমি এমপোর্ট javax.ws.rs.core. মিডিয়াটাইপ আমদানি java.util.List আমদানি java.util.concurrent.CompletionStage @Path ('/ প্রতিক্রিয়াশীল_ফসল') @ প্রোডাক্টস (মিডিয়াটাইপ। APPLICATION_JSON) @ গণমাধ্যম (মিডিয়াটাইপ। APPLICATION_JSON) পাবলিক ক্লাস রিস্যাকটিভ { @ ইনজেক্ট রিঅ্যাকটিভফ্রুটসার্ভিউ ফলের পরিষেবা @GET সার্বজনীন কমপ্লিটসটেজ তালিকা () {ফলের ফলসেব্র্যাসিস্ট.লিস্ট ()} @ পোষ্ট পাবলিক কমপ্লেশনসটেজ অ্যাড (ফল ফল) {ফলের সেবা.ডাড (ফল) রিটার্ন তালিকা ()}}

উপরের উদাহরণে, আমরা এর ব্যবহার করছি সামনের প্রান্তটি গঠনের সুবিধার্থে একটি প্রতিক্রিয়াশীল মঙ্গোডিবি ক্লায়েন্ট।

পদক্ষেপ with সহ চলতে চলেছে।

পদক্ষেপ # 6: বিএসওএন কোডেক ব্যবহার করে মঙ্গোডিবি ক্লায়েন্টকে সরলকরণ

এটি করার জন্য, নীচের কোডটি ব্যবহার করুন।

প্যাকেজ org.acme.rest.json.codec আমদানি com.mongodb.MongoClient আমদানি org.acme.rest.json.Fruit আমদানি org.bson। * আমদানি org.bson.codecs.Codec আমদানি org.bson.codecs.CoclectibleCodec আমদানি org .bson.codecs.DecoderContext আমদানি org.bson.codecs.EncoderContext আমদানি java.util.UID পাবলিক ক্লাস ফ্রুটকডেক কল্যাটেবল কোডেক প্রয়োগ করে {বেসরকারী চূড়ান্ত কোডেক ডকুমেন্ট কোডেক পাবলিক ফ্রুটকডেক ()। this.docamentCodecod.ConcecCentent. (get। )} @ ওভাররাইড পাবলিক শূন্য এনকোড (বিসন রাইটার লেখক, ফল ফল, এনকোডারকন্টেক্সট এনকোডারকন্টেক্সট) {দস্তাবেজ নথি = নতুন দস্তাবেজ () ডক্টপুট ('নাম', ফল.সেটনাম ()) ডক্টপুট ('বিবরণ', ফল.জিট বিবরণ ()) ডকুমেন্টকডেক.এনকোড (লেখক, ডক, এনকোডারকন্টেক্সট) O @ ওভাররাইড পাবলিক ক্লাস getEncoderClass () {রিটার্ন ফ্রুটক্লাস} @ ওভাররাইড পাবলিক ফল জেনারেটআইডিআইএফএফসেন্টস্রোম ডকুমেন্ট (ফলের ডকুমেন্ট) {দস্তাবেজ। ইউআইডি.আরন্ডম ইউইউডি ()। টু স্ট্রিং ())} রিটার্ন ডকুমেন্ট} @ সার্বজনীন বুলিয়ান ডকুমেন্টের ওপরে চালান হ্যাসআইডি ( ফলের ডকুমেন্ট) {ফিরুন ডকুমেন্ট.জেডআইডি ()! নাল} @ সার্বজনীন বিসনভ্যালু getDocamentId (ফলের ডকুমেন্ট) new নতুন বিসনস্ট্রিং (ডকুমেন্ট.জেটআইডি ()) {@ ওভাররাইড পাবলিক ফলের ডিকোড (বিসনরেড রিডার, ডিকোডারকন্টেক্সট ডকুমেন্ট ডকুমেন্ট) = ডকুমেন্টকডেক.ডেকোড (রিডার, ডিকোডারকন্টেক্সট) ফলের ফল = নতুন ফল () যদি (ডকুমেন্ট.সেটস্ট্রিং ('আইডি')! = নাল) {ফ্রুট.সেটআইডি (ডকুমেন্ট.সেটস্ট্রিং ('আইডি'))} ফ্রুট.সেটনেম (ডকুমেন্ট .getString ('name')) fruit.setDescript (document.getString ('বর্ণনা')) ফলের ফল return}

এখন আমরা এটি ইতিমধ্যে উপস্থিত ফলের শ্রেণীর সাথে লিঙ্ক করতে একটি কোডেকপ্রাইডার ব্যবহার করব।

প্যাকেজ org.acme.rest.json.codec আমদানি org.acme.rest.json.Fruit আমদানি org.bson.codecs.Codec আমদানি org.bson.codecs.configration.CodecProvider আমদানি org.bson.codecs.configration.CodecRegistry পাবলিক ক্লাস ফ্রুটকডেকপ্রোভাডার কোডেকপ্রভাইডার প্রয়োগ করে {@ ওভাররাইড পাবলিক কোডেক (ক্লাস ক্লজ, কোডেকরেজিস্ট্রি রেজিস্ট্রি) {যদি (ক্লাজ == ফ্রুটক্লাস) {রিটার্ন (কোডেক) F নতুন ফলের কোডেক ()} রিটার্ন নাল}}

Step ধাপে এগিয়ে চলছে।

পদক্ষেপ # 7: চূড়ান্ত কোড

এই অ্যাপ্লিকেশনটির জন্য চূড়ান্ত কোড, এরকম কিছু দেখাচ্ছে।

প্যাকেজ org.acme.rest.json আমদানি com.mongodb.client.MongoClient আমদানি com.mongodb.client.MongoClay আমদানি com.mongodb.client.MongoCursor আমদানি javax.enterPress.context. প্রয়োগ আবেদনস্কোপড আমদানি javax.inject.Inject আমদানি java.util .আরলিলিস্ট আমদানি java.util.List @ অ্যাপ্লিকেশনসকোপড পাবলিক ক্লাস কোডেকফ্রুটস সার্ভিস {@ ইনজেক্ট মোঙ্গো ক্লায়েন্ট মোঙ্গো ক্লায়েন্ট পাবলিক লিস্ট লিস্ট () list তালিকার তালিকা = নতুন অ্যারেলিস্ট () মঙ্গো কার্সার কার্সার = গেট কালেকশন () সন্ধান করুন ()। পুনরুদ্ধারকারী () চেষ্টা করুন {जबकि (কার্সার) .হাসনেক্সট ()) {list.add (কার্সার.নেক্সট ())}} অবশেষে or কার্সার.ক্লোজ ()} রিটার্নের তালিকা} পাবলিক শূন্যতা অ্যাড (ফল ফল) Col getClay ()। insertOne (ফল)} বেসরকারী মঙ্গো সংগ্রহ সংগ্রহ (সংগ্রহ) ) {ফিরুন মঙ্গো ক্লায়েন্ট.সেটডেটাবেস ('ফল') get গ্যালাকলেকশন ('ফল', ফ্রুটক্লাস)}

উপসংহার

এখন আপনি কীভাবে কনফিগার করবেন এবং আপনার সিস্টেমে মংগোডিবি ক্লায়েন্ট ব্যবহার করবেন তা আপনি জানেন। আপনার সিস্টেমে এই কোডগুলি চেষ্টা করে দেখুন এবং আমাদের আপনার অভিজ্ঞতাটি জানান।

নিবন্ধের সংক্ষিপ্তসার

মঙ্গোডিবি ক্লায়েন্ট এবং আপনি কীভাবে বিভিন্ন ব্যবহারের জন্য আপনার সিস্টেমে এটি কনফিগার করতে পারেন সে সম্পর্কে সমস্ত জানুন। আরো জানতে পড়ুন।

জাভা অ্যারে বস্তুর উদাহরণ

এটির সাথে আমরা শেষ প্রান্তে চলে আসি ' মঙ্গোডিবি ক্লায়েন্ট ' নিবন্ধ।