ArangoDB Query Language (AQL) ব্যবহার করে গ্রাফের ডেটা পরিচালনা করা এবং বিভিন্ন গ্রাফ অপারেশন চালানো সম্ভব। ArangoDB এর গ্রাফ মডেলটি মূলত Vertex (নোড) এবং Edge (সম্পর্ক) এর মাধ্যমে তৈরি হয়। AQL ব্যবহার করে গ্রাফ traversal, shortest path, এবং আরও জটিল অপারেশন সম্পন্ন করা যায়।
গ্রাফ ট্র্যাভার্সাল হলো একটি নোড থেকে শুরু করে সংশ্লিষ্ট নোড এবং এজগুলোর উপর ভিত্তি করে ডেটা অনুসন্ধান।
FOR vertex, edge, path
IN 1..3 OUTBOUND "vertices/startNode"
GRAPH "myGraph"
RETURN { vertex, edge, path }
ব্যাখ্যা:
1..3
: গ্রাফের ১ থেকে ৩ লেভেল গভীরতা পর্যন্ত ট্র্যাভার্স করবে।OUTBOUND
: নোড থেকে বের হওয়া এজ অনুসরণ করবে।"vertices/startNode"
: ট্র্যাভার্সাল শুরু হবে startNode
থেকে।GRAPH "myGraph"
: myGraph
গ্রাফের উপর অপারেশনটি চালানো হবে।vertex
, edge
, এবং path
: রিটার্নের জন্য ভেরটেক্স, এজ এবং সম্পূর্ণ পাথ।একটি নোড থেকে শুধু বের হওয়া এজগুলো অনুসরণ করে।
FOR vertex IN 1..2 OUTBOUND "vertices/startNode" GRAPH "myGraph"
RETURN vertex
একটি নোডে প্রবেশ করা এজগুলো অনুসরণ করে।
FOR vertex IN 1..2 INBOUND "vertices/startNode" GRAPH "myGraph"
RETURN vertex
নোড থেকে প্রবেশ এবং বের হওয়া উভয় ধরনের এজ অনুসরণ করে।
FOR vertex IN 1..2 ANY "vertices/startNode" GRAPH "myGraph"
RETURN vertex
নোডগুলোর মধ্যে সবচেয়ে ছোট পথ (shortest path) বের করার জন্য AQL ব্যবহার করা হয়।
FOR v, e
IN OUTBOUND SHORTEST_PATH "vertices/startNode" TO "vertices/endNode"
GRAPH "myGraph"
RETURN { vertex: v, edge: e }
ব্যাখ্যা:
SHORTEST_PATH
: দুই নোডের মধ্যে সবচেয়ে ছোট পথ খুঁজে বের করে।"vertices/startNode"
এবং "vertices/endNode"
: শুরু এবং শেষ নোড।OUTBOUND
: এজের দিক নির্দেশনা।ট্র্যাভার্সালের সময় শর্ত প্রয়োগ করে নির্দিষ্ট ডেটা অনুসন্ধান করা।
FOR vertex, edge
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
FILTER edge.type == "follows"
RETURN vertex
ব্যাখ্যা:
FILTER edge.type == "follows"
: শুধুমাত্র type
ফিল্ডের মান "follows"
হলে ডেটা রিটার্ন করবে।গ্রাফের এজ সংগ্রহ থেকে সরাসরি ডেটা রিটার্ন করতে পারেন।
FOR edge IN edges
FILTER edge.weight > 10
RETURN edge
ব্যাখ্যা:
weight
> 10, সেগুলো রিটার্ন করবে।গ্রাফ ডেটার উপর নির্দিষ্ট সংখ্যামূলক অ্যানালাইসিস করা।
FOR vertex IN vertices
COLLECT WITH COUNT INTO totalVertices
RETURN totalVertices
ট্র্যাভার্সাল পাথ সহ বিস্তারিত ফলাফল পেতে পারেন।
FOR vertex, edge, path
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
RETURN path
ব্যাখ্যা:
path
: ট্র্যাভার্সাল পাথের বিস্তারিত প্রদান করবে।গ্রাফের একাধিক নোড এবং এজের মধ্যে জটিল সম্পর্ক নির্ণয় করতে সাবকোয়েরি ব্যবহার করা যায়।
FOR v, e, p
IN 1..3 OUTBOUND "vertices/startNode" GRAPH "myGraph"
FILTER v.age > 30
RETURN { name: v.name, path: p }
AQL দিয়ে গ্রাফ অপারেশন ArangoDB-কে জটিল সম্পর্ক বিশ্লেষণের জন্য একটি শক্তিশালী টুল তৈরি করে। Traversal, Shortest Path, এবং Filtering এর মতো বৈশিষ্ট্যগুলো বড় গ্রাফ ডেটাবেসের মধ্যে দ্রুত এবং কার্যকর ডেটা অনুসন্ধান করতে সহায়ক।
common.read_more