PouchDB একটি লাইটওয়েট এবং ব্রাউজার-ভিত্তিক ডাটাবেস যা CouchDB এর সাথে সামঞ্জস্যপূর্ণ। এর মাধ্যমে আপনি offline-first অ্যাপ্লিকেশন তৈরি করতে পারেন, যেখানে ডেটাবেস লোকাল স্টোরেজে রাখা হয় এবং পরে এটি সিঙ্ক করা যায় সার্ভার বা অন্য ডিভাইসের সাথে। PouchDB CouchDB এর কিছু API ব্যবহার করে ডেটাবেস পরিচালনা করে, যার মধ্যে দুটি গুরুত্বপূর্ণ API হলো _all_docs এবং _changes।
_all_docs API
_all_docs API হল PouchDB ডাটাবেস থেকে সমস্ত ডকুমেন্টের তালিকা পাওয়ার জন্য ব্যবহৃত একটি API। এটি খুবই গুরুত্বপূর্ণ যখন আপনি ডাটাবেসের সমস্ত ডকুমেন্ট দেখতে চান বা নির্দিষ্ট কিছু ডকুমেন্টের সম্পর্কে তথ্য নিতে চান।
ব্যবহার:
db.allDocs({include_docs: true})
.then(function(result) {
console.log(result.rows);
})
.catch(function(err) {
console.log(err);
});
প্যারামিটার:
include_docs: যদিtrueসেট করা হয়, তবে প্রতিটি ডকুমেন্টের পুরো কন্টেন্ট ফিরে আসে। যদিfalseথাকে, শুধু ডকুমেন্টের_id,_revইত্যাদি মেটা ডেটা ফিরিয়ে দেয়।startkeyএবংendkey: এই প্যারামিটারগুলি ব্যবহার করে আপনি নির্দিষ্ট কীগুলির মধ্যে ডকুমেন্ট ফিল্টার করতে পারেন।limit: কতটি ডকুমেন্ট ফিরিয়ে দেওয়া হবে তার সীমা নির্ধারণ করতে ব্যবহার হয়।skip: কিছু ডকুমেন্ট স্কিপ করতে ব্যবহৃত হয়, অর্থাৎ প্রথম কয়েকটি ডকুমেন্ট বাদ দিয়ে পরবর্তী ডকুমেন্টগুলি ফিরিয়ে দেয়।
উদাহরণ:
db.allDocs({
startkey: 'doc1',
endkey: 'doc10',
include_docs: true
}).then(function(result) {
console.log(result.rows);
});
_changes API
_changes API হল পুওচডিবি ডাটাবেসের পরিবর্তন ট্র্যাক করার জন্য ব্যবহৃত একটি API। এটি বিশেষভাবে দরকারী যখন আপনি একটি ডাটাবেসের পরিবর্তনগুলি ট্র্যাক করতে চান এবং সেই পরিবর্তনগুলি রিয়েলটাইমে সংগ্রহ করতে চান। সাধারণত, এই API ব্যবহার করে সিঙ্ক্রোনাইজেশন বা ডাটাবেসের পরিবর্তন সনাক্ত করা হয়।
ব্যবহার:
db.changes({
since: 'now',
live: true,
include_docs: true
}).on('change', function(change) {
console.log(change);
});
প্যারামিটার:
since: এটি সেই পয়েন্ট বা সময়কে নির্দিষ্ট করে যেখানে থেকে পরিবর্তন ট্র্যাক করা হবে। এটি"now"বা কোনও নির্দিষ্ট রিভিশন আইডি হতে পারে।live: যদিtrueথাকে, তবে এটি একটি live feed প্রদান করে, যেখানে আপনি রিয়েলটাইমে ডাটাবেসের পরিবর্তনগুলি পাবেন।include_docs: যদিtrueথাকে, তবে পরিবর্তিত ডকুমেন্টের পুরো কন্টেন্ট ফিঁরিয়ে দেওয়া হবে।filter: আপনি একটি কাস্টম ফিল্টার ফাংশন প্রদান করতে পারেন যা নির্দিষ্ট পরিবর্তনগুলিকে সিলেক্ট করবে।
উদাহরণ:
db.changes({
since: 'now',
live: true,
include_docs: true
}).on('change', function(change) {
console.log('Change detected:', change);
});
এটি ব্যবহার করার মাধ্যমে আপনি যদি কোনো ডকুমেন্টে পরিবর্তন করেন, তাহলে সেই পরিবর্তন রিয়েলটাইমে আপনার অ্যাপ্লিকেশন দ্বারা সনাক্ত করা যাবে।
সারাংশ
_all_docsAPI পুওচডিবি ডাটাবেসের সমস্ত ডকুমেন্টের তালিকা প্রদান করে, এবং এটি প্যারামিটার হিসাবে ফিল্টার বা অন্যান্য কাস্টমাইজেশন গ্রহণ করতে পারে।_changesAPI পুওচডিবি ডাটাবেসে রিয়েলটাইম পরিবর্তন ট্র্যাক করতে ব্যবহৃত হয়, যা সিঙ্ক্রোনাইজেশন বা ডাটাবেসের আপডেটগুলো রিয়েলটাইমে গ্রহন করতে সাহায্য করে।
এগুলি পুওচডিবি ডাটাবেসের সাথে কাজ করার সময় গুরুত্বপূর্ণ API যা অ্যাপ্লিকেশনের কার্যকারিতা বাড়াতে সাহায্য করে।