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 กับประเทศที่โหนดมีชื่ออินเดีย