Neo4j-তে Cypher Query Language (CQL) ব্যবহার করে নোড এবং রিলেশনশিপ তৈরি, আপডেট, মুছে ফেলা এবং অনুসন্ধান করা হয়। এটি Neo4j-এর Graph Database এর জন্য বিশেষভাবে ডিজাইন করা একটি ভাষা।
Nodes তৈরি করার জন্য Query
1. একটি Node তৈরি করা
নিচের উদাহরণে একটি Person লেবেলসহ নোড তৈরি করা হচ্ছে:
CREATE (a:Person {name: "John", age: 30})
- Person: নোডের লেবেল।
- name এবং age: নোডের প্রপার্টি।
2. একাধিক Node তৈরি করা
CREATE (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
এটি একই সাথে Alice এবং Bob নামের দুটি নোড তৈরি করবে।
Relationships তৈরি করার জন্য Query
1. দুই নোডের মধ্যে Relationship তৈরি
CREATE (a:Person {name: "Alice"})-[:FRIEND]->(b:Person {name: "Bob"})
- Alice এবং Bob দুটি নোড।
[:FRIEND]: তাদের মধ্যে FRIEND সম্পর্ক তৈরি করেছে।
2. বিদ্যমান নোডের মধ্যে Relationship তৈরি
MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
CREATE (a)-[:FRIEND]->(b)
- MATCH দ্বারা বিদ্যমান নোডগুলো খুঁজে বের করা হয়।
- তারপর CREATE দ্বারা সম্পর্ক তৈরি করা হয়।
3. Relationship-এর সাথে প্রপার্টি যোগ করা
MATCH (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
CREATE (a)-[:FRIEND {since: 2023}]->(b)
এখানে since: 2023 হলো Relationship-এর একটি প্রপার্টি।
Nodes এবং Relationships অনুসন্ধান করার জন্য Query
1. সমস্ত Node অনুসন্ধান করা
MATCH (n)
RETURN n
এটি সমস্ত নোডকে ফিরিয়ে দেবে।
2. নির্দিষ্ট লেবেলের Node অনুসন্ধান
MATCH (n:Person)
RETURN n
এটি শুধুমাত্র Person লেবেলের নোডগুলোকে রিটার্ন করবে।
3. নির্দিষ্ট প্রপার্টির ভিত্তিতে Node অনুসন্ধান
MATCH (n:Person {name: "Alice"})
RETURN n
এটি নাম "Alice" এর সাথে মিলে যাওয়া নোডকে দেখাবে।
4. নোড এবং তাদের Relationship প্রদর্শন
MATCH (a:Person)-[r:FRIEND]->(b:Person)
RETURN a, r, b
- এটি Person নোড এবং তাদের মধ্যে FRIEND সম্পর্ক দেখাবে।
Nodes এবং Relationships আপডেট করার জন্য Query
1. Node-এর প্রপার্টি আপডেট করা
MATCH (n:Person {name: "Alice"})
SET n.age = 25
RETURN n
এটি Alice নোডের age প্রপার্টি আপডেট করবে।
2. Relationship-এর প্রপার্টি আপডেট করা
MATCH (a:Person {name: "Alice"})-[r:FRIEND]->(b:Person {name: "Bob"})
SET r.since = 2022
RETURN r
এটি FRIEND Relationship-এর since প্রপার্টি আপডেট করবে।
Nodes এবং Relationships মুছে ফেলার জন্য Query
1. একটি Node মুছে ফেলা
MATCH (n:Person {name: "Alice"})
DELETE n
Note: নোডের সাথে সংযুক্ত কোনো Relationship থাকলে এটি কাজ করবে না।
2. নোড এবং তার Relationship মুছে ফেলা
MATCH (n:Person {name: "Alice"})
DETACH DELETE n
DETACH DELETE নোড এবং তার সমস্ত Relationship একসাথে মুছে ফেলে।
3. Relationship মুছে ফেলা
MATCH (a:Person)-[r:FRIEND]->(b:Person)
DELETE r
এটি FRIEND Relationship মুছে ফেলবে।
সম্পূর্ণ উদাহরণ
নিচে একটি সম্পূর্ণ উদাহরণ দেওয়া হলো:
// Node তৈরি করা
CREATE (a:Person {name: "Alice"}), (b:Person {name: "Bob"})
// Relationship তৈরি করা
CREATE (a)-[:FRIEND {since: 2023}]->(b)
// নোড এবং Relationship অনুসন্ধান
MATCH (a:Person)-[r:FRIEND]->(b:Person)
RETURN a, r, b
// Relationship-এর প্রপার্টি আপডেট করা
MATCH (a:Person {name: "Alice"})-[r:FRIEND]->(b:Person {name: "Bob"})
SET r.since = 2024
RETURN r
// নোড মুছে ফেলা
MATCH (n:Person {name: "Bob"})
DETACH DELETE n
সারাংশ
Neo4j-এ Cypher Query Language (CQL) ব্যবহার করে নোড এবং রিলেশনশিপ তৈরি, আপডেট, অনুসন্ধান এবং মুছে ফেলা যায়। CQL অত্যন্ত ব্যবহার-বান্ধব এবং গ্রাফ ডেটাবেসের সাথে কাজ করার জন্য শক্তিশালী একটি টুল। নোডের মাধ্যমে এনটিটি সংরক্ষণ এবং এজের মাধ্যমে তাদের সম্পর্ক সংজ্ঞায়িত করা হয়, যা জটিল ডেটা বিশ্লেষণকে সহজ ও কার্যকর করে তোলে।
Read more