CouchDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস, যা JSON ফরম্যাটে ডেটা সংরক্ষণ করে এবং RESTful API ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করা যায়। ডকুমেন্ট তৈরি, আপডেট, রিড, এবং ডিলিট করার জন্য Python ব্যবহার করলে খুব সহজে CouchDB এর সাথে কাজ করা যায়। নিচে CouchDB তে ডকুমেন্ট তৈরি এবং ডেটা হ্যান্ডলিংয়ের উদাহরণ দেয়া হলো।
ডকুমেন্ট তৈরি করার জন্য আপনি 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।ডকুমেন্ট রিড করার জন্য তার _id ব্যবহার করতে হবে। নিচে উদাহরণ দেয়া হলো কিভাবে একটি ডকুমেন্ট রিড করা যায়।
# ডকুমেন্ট রিড করা (ডকুমেন্টের ID জানলে)
doc_id = 'document_id_here' # এখানে ডকুমেন্টের ID দিন
doc = db[doc_id]
# ডকুমেন্টের তথ্য প্রদর্শন
print(f"Document Retrieved: {doc}")
এখানে:
db[doc_id]
ব্যবহার করে ডেটাবেস থেকে নির্দিষ্ট doc_id এর ডকুমেন্ট রিড করা হয়।CouchDB তে ডকুমেন্ট আপডেট করতে হলে প্রথমে ডকুমেন্টটি রিড করতে হবে এবং তারপর তার _rev ফিল্ড ব্যবহার করে আপডেট করতে হবে।
# ডকুমেন্ট রিড করা
doc = db[doc_id]
# ডকুমেন্টের তথ্য আপডেট করা
doc['age'] = 31 # উদাহরণস্বরূপ, বয়স আপডেট করা
# আপডেট করা ডকুমেন্ট সেভ করা
db.save(doc)
# ফলাফল প্রদর্শন
print(f"Document updated with new age: {doc['age']}")
এখানে:
db.save(doc)
ডকুমেন্ট আপডেট করার জন্য ব্যবহার করা হয়।ডকুমেন্ট মুছে ফেলার জন্য, আপনাকে _id এবং _rev ফিল্ডের সাহায্যে ডকুমেন্টটি ডিলিট করতে হবে।
# ডকুমেন্ট রিড করা
doc = db[doc_id]
# ডকুমেন্ট ডিলিট করা
db.delete(doc)
# ফলাফল প্রদর্শন
print(f"Document with ID: {doc_id} deleted")
এখানে:
db.delete(doc)
ডকুমেন্টটিকে ডেটাবেস থেকে মুছে ফেলবে।একাধিক ডকুমেন্ট একসাথে ইনসার্ট করার জন্য 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)
একসাথে একাধিক ডকুমেন্ট ইনসার্ট করতে ব্যবহৃত হয়।View তৈরি করে আপনি ডেটা কাস্টম কুয়েরি করতে পারেন। নিচে একটি উদাহরণ দেয়া হলো যেখানে আমরা MapReduce ফাংশন ব্যবহার করে name এর ভিত্তিতে ডেটা কুয়েরি করছি।
{
"_id": "_design/user_view",
"views": {
"by_name": {
"map": "function(doc) { emit(doc.name, 1); }",
"reduce": "_sum"
}
}
}
এখানে:
# 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.read_more