# Cypher Question and Resource

**URL:** <https://community.neo4j.com/t/cypher-question-and-resource/9806>\
**Category:** Cypher\
**Created:** [September 1, 2019, 5:33pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806 "2019-09-01T17:33:42Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![mansour\_shams](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/mansour_shams/32/3913_2.png) [@mansour\_shams](https://community.neo4j.com/u/mansour_shams)\
**Post date:** [September 1, 2019, 5:33pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/1 "2019-09-01T17:33:42Z")

</div>

Hello,

I have a couple of questions:

- Is the function "EXISTS' is still valid as :help EXISTS says it is not found?

- Are there any books on the Cypher language covering in particular details of the language and in particular the reading from CSV (more than just simple examples)

Thank you

---

<div class="post-metadata">

**Author:** ![ameyasoft](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/ameyasoft/32/32639_2.png) [@ameyasoft](https://community.neo4j.com/u/ameyasoft)\
**Post date:** [September 1, 2019, 6:24pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/2 "2019-09-01T18:24:26Z")

</div>

Check this book:  
Practical Neo4j by Gregory Jordan (Apress) Chapter 5

---

<div class="post-metadata">

**Author:** ![12kunal34](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/12kunal34/32/2617_2.png) [@12kunal34](https://community.neo4j.com/u/12kunal34)\
**Post date:** [September 1, 2019, 6:25pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/3 "2019-09-01T18:25:24Z")

</div>

yes  
function exists still valid  
and for CQL you can refer below link

> **[The Neo4j Cypher Manual v5 - Cypher Manual](https://neo4j.com/docs/cypher-manual/current/)**
>
> This is the Cypher Query Language documentation for Neo4j, authored by the Neo4j Team.

---

<div class="post-metadata">

**Author:** ![dana\_canzano](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/dana_canzano/32/27392_2.png) [@dana\_canzano](https://community.neo4j.com/u/dana_canzano)\
**Post date:** [September 1, 2019, 11:48pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/4 "2019-09-01T23:48:41Z")

</div>

[Cypher Cheat Sheet](https://neo4j.com/docs/cypher-refcard/current/) is the 3.5 Cypher Ref Card and under Predicates does list Exists. Further this is described at [WHERE - Cypher Manual](https://neo4j.com/docs/cypher-manual/3.5/clauses/where/#property-existence-checking)

---

<div class="post-metadata">

**Author:** ![mansour\_shams](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/mansour_shams/32/3913_2.png) [@mansour\_shams](https://community.neo4j.com/u/mansour_shams)\
**Post date:** [September 2, 2019, 1:17am UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/5 "2019-09-02T01:17:12Z")

</div>

Thank you very much for all you great posts. I have a question. Is the following a Boolean:

((a:ABC)-[r:RELATION]-\>(b:XYZ))

and if so, can it be used as is with WHERE and under what condition it is True or False?

If it is Boolean and becomes True if the relationship exists, then why do we use EXISTS?

It is still strange that the help command with Neo4j says this is not found but using it does nto return any exceptions, etc.

---

<div class="post-metadata">

**Author:** ![dana\_canzano](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/dana_canzano/32/27392_2.png) [@dana\_canzano](https://community.neo4j.com/u/dana_canzano)\
**Post date:** [September 2, 2019, 1:58am UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/6 "2019-09-02T01:58:06Z")

</div>

> [@mansour\_shams](#):
>
> It is still strange that the help command with Neo4j says this is not found but using it does nto return any exceptions, etc.

but within the browser running `:help help` provides the top root of the available `:help` options. Even if you look at `:help cypher` you will see not `:help exists` but you also dont see a `:help size` or a `:help any` etc.

also check out [WHERE - Cypher Manual](https://neo4j.com/docs/cypher-manual/3.5/clauses/where/#query-where-patterns) which indicates

```auto
3.7.5.1. Filter on patterns
Patterns are expressions in Cypher, expressions that return a list of paths. List expressions are also predicates — an empty list represents false, and a non-empty represents true.

Query:
MATCH (timothy { name: 'Timothy' }),(others)
WHERE others.name IN ['Andy', 'Peter'] AND (timothy)<--(others)
RETURN others.name, others.age

```

---

<div class="post-metadata">

**Author:** ![michael.hunger](https://sea1.discourse-cdn.com/flex021/user_avatar/community.neo4j.com/michael.hunger/32/27377_2.png) [@michael.hunger](https://community.neo4j.com/u/michael.hunger)\
**Post date:** [September 2, 2019, 11:30pm UTC](https://community.neo4j.com/t/cypher-question-and-resource/9806/7 "2019-09-02T23:30:27Z")

</div>

It's basically syntactic sugar, the pattern expression is internally rewritten into an exists operation if used in a **boolean predicate context**.

In another context it results in a list of paths.
