Cross-collection Queries

Database Tutorials - আরাঙ্গো (ArangoDB) Joins এবং Relational Queries |
264
264

Cross-collection Queries ArangoDB-তে একাধিক Collection থেকে ডেটা একত্রে অনুসন্ধান, বিশ্লেষণ, এবং ম্যানিপুলেশনের জন্য ব্যবহৃত হয়। এটি ডকুমেন্ট বা গ্রাফ ডেটার মধ্যকার সম্পর্ক বিশ্লেষণ করার জন্য একটি শক্তিশালী পদ্ধতি।


Cross-collection Queries এর মূল ধারণা

ArangoDB-তে একাধিক Collection এর ডেটা যুক্ত করার জন্য AQL (ArangoDB Query Language) ব্যবহার করা হয়। এটি JOIN, FILTER, এবং অন্যান্য শর্তাবলী প্রয়োগের মাধ্যমে ডেটা পরিচালনা করে।

মূল উপাদান:

  • FOR: একাধিক Collection এর উপর লুপ চালাতে ব্যবহৃত হয়।
  • FILTER: Collection এর মধ্যে সম্পর্ক নির্ধারণ করতে ব্যবহৃত হয়।
  • RETURN: চূড়ান্ত রেজাল্ট প্রদান করে।

Cross-collection Query এর উদাহরণ

1. দুটি Collection এর ডেটা যুক্ত করা

FOR user IN users
    FOR order IN orders
        FILTER user._key == order.user_id
        RETURN { user: user.name, order: order.product }

উপরের কোয়েরি users এবং orders Collection এর ডেটা একত্রিত করে।


2. Nested Queries ব্যবহার

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 করা হয়েছে, যেখানে প্রতিটি ব্যবহারকারীর জন্য তাদের অর্ডার লিস্ট যুক্ত করা হয়েছে।


3. Filter সহ Cross-collection 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


4. Aggregation সহ Cross-collection Query

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 }

এটি প্রতিটি ব্যবহারকারীর জন্য মোট অর্ডারের সংখ্যা রিটার্ন করে।


Graph Context এ Cross-collection Queries

গ্রাফ ডেটার ক্ষেত্রে Cross-collection Queries Vertex এবং Edge Collection এর মধ্যে সম্পর্ক বিশ্লেষণ করতে ব্যবহৃত হয়।

1. Vertex এবং Edge থেকে ডেটা রিট্রিভ করা

FOR vertex, edge IN 1..1
    OUTBOUND "users/user1" friendships
    RETURN { friend: vertex.name, relation: edge.type }

এটি friendships Edge Collection এবং users Vertex Collection থেকে ডেটা রিটার্ন করবে।

2. গ্রাফ Traversal এর সাথে Cross-collection Query

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 এর বন্ধু এবং তাদের তৈরি করা পোস্ট রিটার্ন করবে।


Performance Optimization

Cross-collection Queries পরিচালনার সময় Index ব্যবহার করা গুরুত্বপূর্ণ। এটি পারফরম্যান্স বৃদ্ধি করে।

Index ব্যবহার নিশ্চিত করুন:

  • Primary Index: প্রতিটি ডকুমেন্ট _key দ্বারা দ্রুত অ্যাক্সেসের জন্য।
  • Secondary Index: যেসব ক্ষেত্রে ফিল্টার ব্যবহার করা হয়।
  • Edge Index: গ্রাফ ডেটার মধ্যে সম্পর্ক দ্রুত অনুসন্ধানের জন্য।

Limit এবং Pagination প্রয়োগ

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.content_added_by
টপ রেটেড অ্যাপ

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

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

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