ฉันมีฐานข้อมูลกราฟที่สร้างแบบจำลองข้อมูลเมตาสำหรับข้อความและฟิลด์ที่สามารถมีอยู่ในข้อความเหล่านั้น บางฟิลด์อาจเป็น "กลุ่ม" ซึ่งเป็นกลุ่มของฟิลด์อื่นๆ สิ่งที่ฉันพยายามถาม Neo คือ "กลุ่มนี้ใช้ข้อความอะไรบ้าง" ต่อไปนี้เป็นรายการประเภทเส้นทางที่สามารถใช้เพื่อรับจากข้อความไปยังกลุ่ม:
message-[:INLINE]->group (the fields of a group are used inline on a message)
message-[:FIELDREF]->(fref)-[:FIELD]->(field)-[:DATATYPE]->group (the group is used as a data type by a field on the message)
ห่วงโซ่ที่สองเป็นแบบเรียกซ้ำ กล่าวอีกนัยหนึ่ง ส่วน -[:FIELDREF]->(fref)-[:FIELD]->(field)-[:DATATYPE]-(group) สามารถเกิดขึ้นซ้ำแล้วซ้ำอีกก่อนที่จะถึงกลุ่มที่ฉันสนใจในที่สุด ใน.
ดังนั้นสิ่งที่ฉันอยากรู้คือ ฉันจะขอความสัมพันธ์แบบลูกโซ่ซ้ำๆ แทนที่จะเป็นเพียงหลายรายการ (เช่น * หลังชื่อความสัมพันธ์) ในแต่ละองค์ประกอบในเส้นทางได้อย่างไร
โดยสรุป คุณสามารถเข้าถึงกลุ่มจากข้อความโดยข้ามความสัมพันธ์ [:INLINE] ซึ่งสามารถติดตามเชน "fieldref-field-datatype-group" จำนวน n จำนวน .. หรือคุณสามารถเข้าถึงกลุ่มจาก ข้อความโดยการสำรวจ n จำนวนเชน "fieldref-field-datatype-group"
START group=node({sourceGroupId})
... ? ? ? ...
ดังนั้นฉันต้องการบางอย่างเช่น [?:INLINE]-> 0..n ของ (fieldref-field-datatype-group) chains
มีความคิดอะไรบ้าง?