I have a graph database that is modeling the metadata for messages and the fields that can be contained on those messages. Some of those fields can be "groups" which are groups of other fields. What I am attempting to ask Neo is "what messages are using this group?". The following is a list of the path types that can be used to get from a message to a group:
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)
The second chain is recursive. In other words, the -[:FIELDREF]->(fref)-[:FIELD]->(field)-[:DATATYPE]-(group) segment can happen over and over again before finally reaching the group I'm interested in.
So, what I want to know is, how do I ask for a repeating chain of relationships rather than just a multiple (e.g. * after the relationship name) on each individual element in the path?
To recap, you can either get to a group from a message by traversing an [:INLINE] relationship, which can then follow n number of "fieldref-field-datatype-group" chains.. OR you can get to a group from a message by traversing n number of "fieldref-field-datatype-group" chains.
START group=node({sourceGroupId})
... ? ? ? ...
So I want something like [?:INLINE]-> 0..n of (fieldref-field-datatype-group) chains.
Any thoughts?