Best to send questions like this to community.neo4j.com

In general if you aggregate, you must not add the thing you want to count /
aggregate on as an aggregation key, you can use collect on those.

MATCH (echk:REC {id: 'abcdef'})
OPTIONAL MATCH (p:Person) WHERE p.name CONTAINS 'Shirley'
WITH collect(p) as people, echk, count(p) as personcnt where personcnt=1
UNWIND people as p
MERGE (p)-[:TEST]->(echk)

You don't need apoc.merge.relationship for your case you can just use
cypher.



Join our new Community Site & Forum <https://community.neo4j.com>


On Mon, Dec 7, 2020 at 12:55 PM 'Shanthi Viswanathan' via Neo4j <
neo4j@googlegroups.com> wrote:

> I am using neo4j 4.1.3. I have 2 labels : Person and Rec. I need to create
> a relationship between these 2 only when there exists exactly one person
> with that last name. When I run the below, relationships are created for
> all persons with that last name. My code is below:
>
> MATCH (echk:REC {id: 'abcdef'}) OPTIONAL MATCH (p:Person) WHERE p.name
> CONTAINS 'Shirley' WITH p, echk, count(p) as personcnt where personcnt=1
> CALL apoc.merge.relationship(p, 'Test', {}, {}, echk, {}) YIELD rel RETURN
> p, echk, rel
>
> I have 33 people with "Shirley' and 33 relationships are getting created
> with that REC. However, there should be no relationship because personcnt
> <> 1. When I just write
> OPTIONAL MATCH (p:Person) WHERE p.name CONTAINS 'Shirley'  return
> count(p) -> I get 33 as the value. I am not sure why my where condition is
> not kicking in.
>
>
> --
> 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 neo4j+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/neo4j/9f5043ee-fec0-4f0b-94e4-85d9b6ee8a45n%40googlegroups.com
> <https://groups.google.com/d/msgid/neo4j/9f5043ee-fec0-4f0b-94e4-85d9b6ee8a45n%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 neo4j+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/neo4j/CAKZwuWkzsZDo0pXf1FFyshohXFqOd2%2BAjDimCfGyU0v8q7QjFQ%40mail.gmail.com.

Reply via email to