Cross-collection Queries ArangoDB-তে একাধিক Collection থেকে ডেটা একত্রে অনুসন্ধান, বিশ্লেষণ, এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি ডকুমেন্ট বা গ্রাফ ডেটার মধ্যকার সম্পর্ক বিশ্লেষণ করার জন্য একটি শক্তিশালী পদ্ধতি।
ArangoDB-তে একাধিক Collection এর ডেটা যুক্ত করার জন্য AQL (ArangoDB Query Language) ব্যবহার করা হয়। এটি JOIN
, FILTER
, এবং অন্যান্য শর্তাবলী প্রয়োগের মাধ্যমে ডেটা পরিচালনা করে।
FOR user IN users
FOR order IN orders
FILTER user._key == order.user_id
RETURN { user: user.name, order: order.product }
উপরের কোয়েরি users
এবং orders
Collection এর ডেটা একত্রিত করে।
FOR user IN users
LET orders = (
FOR order IN orders
FILTER order.user_id == user._key
RETURN order
)
RETURN { user: user.name, orders: orders }
এখানে LET
ব্যবহার করে Nested Query করা হয়েছে, যেখানে প্রতিটি ব্যবহারকারীর জন্য তাদের অর্ডার লিস্ট যুক্ত করা হয়েছে।
FOR user IN users
FOR order IN orders
FILTER user._key == order.user_id AND order.status == "completed"
RETURN { user: user.name, order: order.product }
এটি users
এবং orders
Collection এর মধ্যে ডেটা যুক্ত করে যেখানে order
এর স্ট্যাটাস completed।
FOR user IN users
FOR order IN orders
FILTER user._key == order.user_id
COLLECT username = user.name WITH COUNT INTO total_orders
RETURN { username, total_orders }
এটি প্রতিটি ব্যবহারকারীর জন্য মোট অর্ডারের সংখ্যা রিটার্ন করে।
গ্রাফ ডেটার ক্ষেত্রে Cross-collection Queries Vertex এবং Edge Collection এর মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়।
FOR vertex, edge IN 1..1
OUTBOUND "users/user1" friendships
RETURN { friend: vertex.name, relation: edge.type }
এটি friendships
Edge Collection এবং users
Vertex Collection থেকে ডেটা রিটার্ন করবে।
FOR vertex IN 1..2
OUTBOUND "users/user1" friendships
FOR post IN posts
FILTER post.user_id == vertex._key
RETURN { friend: vertex.name, post: post.title }
এটি user1
এর বন্ধু এবং তাদের তৈরি করা পোস্ট রিটার্ন করবে।
Cross-collection Queries পরিচালনার সময় Index ব্যবহার করা গুরুত্বপূর্ণ। এটি পারফরম্যান্স বৃদ্ধি করে।
_key
দ্বারা দ্রুত অ্যাক্সেসের জন্য।Pagination এর মাধ্যমে Cross-collection Queries এর ফলাফল সীমিত করা যায়।
FOR user IN users
FOR order IN orders
FILTER user._key == order.user_id
LIMIT 0, 10
RETURN { user: user.name, order: order.product }
এটি প্রথম ১০টি ফলাফল রিটার্ন করবে।
Cross-collection Queries ArangoDB তে বিভিন্ন Collection এর ডেটা সংযুক্ত এবং বিশ্লেষণ করার একটি কার্যকর পদ্ধতি। এটি Nested Queries, Aggregation, এবং Graph Context এর মতো জটিল অপারেশন সহজ করে। ডেটা সম্পর্ক বিশ্লেষণ এবং পারফরম্যান্স অপ্টিমাইজেশনের জন্য Index ব্যবহারের উপর গুরুত্ব দিতে হবে।
common.read_more