Neo4j - โดยที่ข้อ

เช่นเดียวกับ SQL Neo4j CQL ได้จัดเตรียม WHERE clause ในคำสั่ง CQL MATCH เพื่อกรองผลลัพธ์ของ MATCH Query

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์ของคำสั่ง WHERE

MATCH (label)  
WHERE label.country = "property" 
RETURN label

ตัวอย่าง

ก่อนดำเนินการตามตัวอย่างให้สร้างห้าโหนดในฐานข้อมูลดังที่แสดงด้านล่าง

CREATE(Dhawan:player{name:"shikar Dhawan", YOB: 1985, runs:363, country: "India"}
CREATE(Jonathan:player{name:"Jonathan Trott", YOB:1981, runs:229, country:"South Africa"}
CREATE(Sangakkara:player{name:"Kumar Sangakkara", YOB:1977, runs:222, 
   country:"Srilanka"})
CREATE(Rohit:player{name:"Rohit Sharma", YOB: 1987, runs:177, country:"India"})
CREATE(Virat:player{name:"Virat Kohli", YOB: 1988, runs:176, country:"India"})
CREATE(Ind:Country {name: "India", result: "Winners"})

ต่อไปนี้เป็นตัวอย่าง Cypher Query ที่ส่งคืนผู้เล่นทั้งหมด (โหนด) ที่เป็นของประเทศอินเดียโดยใช้คำสั่ง WHERE

MATCH (player)  
WHERE player.country = "India" 
RETURN player

ในการดำเนินการค้นหาข้างต้นให้ทำตามขั้นตอนต่อไปนี้ -

Step 1- เปิดแอพเดสก์ท็อป Neo4j และเริ่มเซิร์ฟเวอร์ Neo4j เปิดแอปเบราว์เซอร์ในตัวของ Neo4j โดยใช้ URLhttp://localhost:7474/ ดังที่แสดงในภาพหน้าจอต่อไปนี้

Step 2 - คัดลอกและวางข้อความค้นหาที่ต้องการในพรอมต์ดอลลาร์แล้วกดปุ่มเล่น (เพื่อดำเนินการสืบค้น) ที่ไฮไลต์ในภาพหน้าจอต่อไปนี้

ผลลัพธ์

ในการดำเนินการคุณจะได้รับผลลัพธ์ดังต่อไปนี้

WHERE ประโยคที่มีหลายเงื่อนไข

คุณยังสามารถใช้คำสั่ง WHERE เพื่อตรวจสอบเงื่อนไขต่างๆ

ไวยากรณ์

ต่อไปนี้เป็นไวยากรณ์สำหรับใช้ WHERE clause ใน Neo4j ที่มีเงื่อนไขหลายเงื่อนไข

MATCH (emp:Employee)  
WHERE emp.name = 'Abc' AND emp.name = 'Xyz' 
RETURN emp

ตัวอย่าง

ต่อไปนี้เป็นตัวอย่าง Cypher Query ซึ่งกรองโหนดในฐานข้อมูล Neo4j โดยใช้สองเงื่อนไข

MATCH (player)  
WHERE player.country = "India" AND player.runs >=175 
RETURN player

ในการดำเนินการค้นหาข้างต้นให้ทำตามขั้นตอนต่อไปนี้ -

Step 1- เปิดแอพเดสก์ท็อป Neo4j และเริ่มเซิร์ฟเวอร์ Neo4j เปิดแอปเบราว์เซอร์ในตัวของ Neo4j โดยใช้ URLhttp://localhost:7474/ ดังที่แสดงในภาพหน้าจอต่อไปนี้

Step 2 - คัดลอกและวางข้อความค้นหาที่ต้องการในพรอมต์ดอลลาร์แล้วกดปุ่มเล่น (เพื่อดำเนินการสืบค้น) ที่ไฮไลต์ในภาพหน้าจอต่อไปนี้

ผลลัพธ์

ในการดำเนินการคุณจะได้รับผลลัพธ์ดังต่อไปนี้

การใช้ความสัมพันธ์กับ Where Clause

คุณยังสามารถใช้ Where clause เพื่อกรองโหนดโดยใช้ความสัมพันธ์

ตัวอย่าง

สมมติว่าเรามีกราฟต่อไปนี้ในฐานข้อมูล

ต่อไปนี้เป็นตัวอย่าง Cypher Query เพื่อดึงข้อมูลผู้ทำประตูสูงสุดของอินเดียโดยใช้ WHERE clause ดังที่แสดงด้านล่าง

MATCH (n) 
WHERE (n)-[: TOP_SCORER_OF]->( {name: "India", result: "Winners"}) 
RETURN n

ในการดำเนินการค้นหาข้างต้นให้ทำตามขั้นตอนต่อไปนี้ -

Step 1- เปิดแอพเดสก์ท็อป Neo4j และเริ่มเซิร์ฟเวอร์ Neo4j เปิดแอปเบราว์เซอร์ในตัวของ Neo4j โดยใช้ URLhttp://localhost:7474/ ดังที่แสดงในภาพหน้าจอต่อไปนี้

Step 2 - คัดลอกและวางข้อความค้นหาที่ต้องการในพรอมต์ดอลลาร์แล้วกดปุ่มเล่น (เพื่อดำเนินการสืบค้น) ที่ไฮไลต์ในภาพหน้าจอต่อไปนี้

ผลลัพธ์

ในการดำเนินการคุณจะได้รับผลลัพธ์ดังต่อไปนี้ ที่นี่คุณสามารถสังเกตได้ว่า Neo4j ส่งคืนโหนดซึ่งมีความสัมพันธ์ TOP_SCORER_OF กับประเทศที่โหนดมีชื่ออินเดีย