У меня есть графовая база данных, которая моделирует метаданные для сообщений и поля, которые могут содержаться в этих сообщениях. Некоторые из этих полей могут быть «группами», которые представляют собой группы других полей. Я пытаюсь спросить Нео: «Какие сообщения используют эту группу?». Ниже приведен список типов путей, которые можно использовать для перехода от сообщения к группе:
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], которое затем может следовать n количеству цепочек «fieldref-field-datatype-group». ИЛИ вы можете добраться до группы из сообщение путем обхода n цепочек "fieldref-field-data-group".
START group=node({sourceGroupId})
... ? ? ? ...
Итак, я хочу что-то вроде [?:INLINE]-> 0..n цепочек (fieldref-field-datatype-group).
есть идеи?