For some reason this is returning such nodes too:
/ROOT/N1/A/N2/A
I will upload the database sometime later. I think that should make it
easier to test the queries.
On Tuesday, December 27, 2016 at 10:45:25 PM UTC+11, Tom Zeppenfeldt wrote:
>
> What about this approach ?
>
>
> WITH 'A' as name
> MATCH p=((n:Root)-[:CHILD*]->(m {name:name}))
> WHERE SINGLE(n in TAIL(nodes(p)) WHERE n.name=name)
> RETURN m
>
> which wil return only the first node with name=‘A’ , if any.
>
> On 27 Dec 2016, at 11:58, Behrang Saeedzadeh <[email protected]
> <javascript:>> wrote:
>
> This might work, but my dataset has about 2m nodes and it is very slow as
> it results a cartesian join:
>
> MATCH (n), (p)
> WHERE
> n.name = 'A' AND
> p.name = 'A' AND
> NOT (p)-->(n)
> RETURN n
>
>
>
> On Tuesday, December 27, 2016 at 9:52:08 PM UTC+11, Behrang Saeedzadeh
> wrote:
>>
>> Hi Benoit,
>>
>> A is the value of the name property for the nodes. So the query is more
>> like this:
>>
>>
>> MATCH (n)
>> WHERE
>> size ((m)-->(n)) = 0
>> AND m.name = 'A'
>> AND n.name = 'A'
>> RETURN n
>>
>>
>> However this won't work because I don't have m in the MATCH clause:
>>
>> Variable `m` not defined (line 3, column 9 (offset: 24))
>> " size ((m)-->(n)) = 0"
>> ^
>>
>>
>>
>>
>> On Saturday, December 24, 2016 at 9:33:47 PM UTC+11, Benoît Simard wrote:
>>>
>>> Something like that ?
>>>
>>> MATCH (n:A)
>>> WHERE
>>> size((:A)-->(n)) = 0 AND
>>> exists((:Root)-[*]->(n))
>>> RETURN n
>>>
>>>
>>>
>>> 2016-12-24 10:40 GMT+01:00 Behrang Saeedzadeh <[email protected]>:
>>>
>>>> Let's pretend we have a tree like this in which each node is labeled
>>>> with the name property:
>>>>
>>>>
>>>> ROOT
>>>> |
>>>> \---> X --> *A* --> Y --> A --> Z
>>>> |
>>>> |
>>>> \---> *A* --> A
>>>> |
>>>> |
>>>> \---> *A*
>>>>
>>>>
>>>> I want to return all the nodes named A that don't have an ancestor that
>>>> is also named A. In other words, only the *A* nodes that are in bold
>>>> and are underlined.
>>>>
>>>> What Cypher query can return these nodes?
>>>>
>>>> Thanks in advance.
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Neo4j" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
> --
> You received this message because you are subscribed to the Google Groups
> "Neo4j" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected] <javascript:>.
> For more options, visit https://groups.google.com/d/optout.
>
>
>
--
You received this message because you are subscribed to the Google Groups
"Neo4j" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.