CouchDB তে ডকুমেন্ট তৈরি এবং ডেটা হ্যান্ডলিং এর উদাহরণ

Database Tutorials - কাউচডিবি (CouchDB) বাস্তব উদাহরণ এবং ব্যবহারিক ডেমো |
194
194

CouchDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস, যা JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং RESTful API ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করা যায়। ডকুমেন্ট তৈরি, আপডেট, রিড, এবং ডিলিট করার জন্য Python ব্যবহার করলে খুব সহজে CouchDB এর সাথে কাজ করা যায়। নিচে CouchDB তে ডকুমেন্ট তৈরি এবং ডেটা হ্যান্ডলিংয়ের উদাহরণ দেয়া হলো।


1. CouchDB তে ডকুমেন্ট তৈরি (Create Document)

ডকুমেন্ট তৈরি করার জন্য আপনি Python CouchDB লাইব্রেরি ব্যবহার করতে পারেন। এখানে একটি নতুন ডকুমেন্ট তৈরি করা হবে এবং সেটি CouchDB তে সংরক্ষণ করা হবে।

কোড উদাহরণ:

import couchdb

# CouchDB সার্ভারের URL
couch = couchdb.Server('http://localhost:5984/')

# ডেটাবেসের নাম
db_name = 'user_db'

# ডেটাবেসের সাথে সংযোগ করা
if db_name in couch:
    db = couch[db_name]
else:
    db = couch.create(db_name)

# ডকুমেন্ট তৈরি
doc = {
    'name': 'Alice',
    'email': 'alice@example.com',
    'age': 30,
    'type': 'user'
}

# ডকুমেন্ট সেভ করা
doc_id, doc_rev = db.save(doc)

# ফলাফল প্রদর্শন
print(f"Document created with ID: {doc_id} and Revision: {doc_rev}")

এখানে:

  • db.save(doc) ফাংশনটি ডকুমেন্টটি ডেটাবেসে সেভ করবে।
  • doc_id এবং doc_rev হল নতুন ডকুমেন্টের ID এবং Revision।

2. CouchDB তে ডেটা রিড (Read Document)

ডকুমেন্ট রিড করার জন্য তার _id ব্যবহার করতে হবে। নিচে উদাহরণ দেয়া হলো কিভাবে একটি ডকুমেন্ট রিড করা যায়।

কোড উদাহরণ:

# ডকুমেন্ট রিড করা (ডকুমেন্টের ID জানলে)
doc_id = 'document_id_here'  # এখানে ডকুমেন্টের ID দিন
doc = db[doc_id]

# ডকুমেন্টের তথ্য প্রদর্শন
print(f"Document Retrieved: {doc}")

এখানে:

  • db[doc_id] ব্যবহার করে ডেটাবেস থেকে নির্দিষ্ট doc_id এর ডকুমেন্ট রিড করা হয়।

3. CouchDB তে ডেটা আপডেট (Update Document)

CouchDB তে ডকুমেন্ট আপডেট করতে হলে প্রথমে ডকুমেন্টটি রিড করতে হবে এবং তারপর তার _rev ফিল্ড ব্যবহার করে আপডেট করতে হবে।

কোড উদাহরণ:

# ডকুমেন্ট রিড করা
doc = db[doc_id]

# ডকুমেন্টের তথ্য আপডেট করা
doc['age'] = 31  # উদাহরণস্বরূপ, বয়স আপডেট করা

# আপডেট করা ডকুমেন্ট সেভ করা
db.save(doc)

# ফলাফল প্রদর্শন
print(f"Document updated with new age: {doc['age']}")

এখানে:

  • db.save(doc) ডকুমেন্ট আপডেট করার জন্য ব্যবহার করা হয়।
  • _rev ফিল্ডটি সঠিকভাবে রিভিশন ম্যানেজমেন্টের জন্য কাজ করে।

4. CouchDB তে ডেটা ডিলিট (Delete Document)

ডকুমেন্ট মুছে ফেলার জন্য, আপনাকে _id এবং _rev ফিল্ডের সাহায্যে ডকুমেন্টটি ডিলিট করতে হবে।

কোড উদাহরণ:

# ডকুমেন্ট রিড করা
doc = db[doc_id]

# ডকুমেন্ট ডিলিট করা
db.delete(doc)

# ফলাফল প্রদর্শন
print(f"Document with ID: {doc_id} deleted")

এখানে:

  • db.delete(doc) ডকুমেন্টটিকে ডেটাবেস থেকে মুছে ফেলবে।

5. CouchDB তে Bulk Insert (ব্যাচ ইনসার্ট)

একাধিক ডকুমেন্ট একসাথে ইনসার্ট করার জন্য bulk_save() ফাংশন ব্যবহার করা হয়।

কোড উদাহরণ:

# একাধিক ডকুমেন্ট তৈরি করা
docs = [
    {'name': 'Bob', 'email': 'bob@example.com', 'age': 25, 'type': 'user'},
    {'name': 'Charlie', 'email': 'charlie@example.com', 'age': 28, 'type': 'user'}
]

# ব্যাচ ইনসার্ট
db.bulk_save(docs)

# ফলাফল প্রদর্শন
print("Batch documents saved")

এখানে:

  • db.bulk_save(docs) একসাথে একাধিক ডকুমেন্ট ইনসার্ট করতে ব্যবহৃত হয়।

6. CouchDB তে View তৈরি এবং কুয়েরি করা

View তৈরি করে আপনি ডেটা কাস্টম কুয়েরি করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো যেখানে আমরা MapReduce ফাংশন ব্যবহার করে name এর ভিত্তিতে ডেটা কুয়েরি করছি।

View তৈরি করা (Design Document):

{
   "_id": "_design/user_view",
   "views": {
     "by_name": {
       "map": "function(doc) { emit(doc.name, 1); }",
       "reduce": "_sum"
     }
   }
}

এখানে:

  • Map ফাংশন name ফিল্ড অনুযায়ী কাস্টম key-value পেয়ার তৈরি করবে।
  • Reduce ফাংশন _sum ব্যবহার করে সকল মানের যোগফল গণনা করবে।

View কুয়েরি করা:

# View থেকে ডেটা কুয়েরি করা
view = db.view('user_view/by_name')  # 'user_view' হল Design Document নাম

# ফলাফল প্রদর্শন
for row in view:
    print(f"Name: {row.key}, Count: {row.value}")

এখানে:

  • db.view('user_view/by_name') কোডটি Map এবং Reduce ফাংশনের সাহায্যে ডেটাবেস থেকে কুয়েরি করবে এবং ফলস্বরূপ name এবং তাদের গুনফল প্রিন্ট করবে।

উপসংহার

CouchDB তে ডকুমেন্ট তৈরি এবং ডেটা হ্যান্ডলিং খুবই সহজ এবং কার্যকরী। Python এর মাধ্যমে আপনি খুব সহজেই ডেটা ইনসার্ট, রিড, আপডেট, ডিলিট, ব্যাচ ইনসার্ট এবং কাস্টম কুয়েরি তৈরি করতে পারেন। এর মাধ্যমে ডিস্ট্রিবিউটেড ডাটাবেসে কাজ করার জন্য একটি শক্তিশালী এবং নমনীয় সমাধান পাওয়া যায়।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion