We never live in isolation and this hold true with our data, which is nothing more than an interconnection between varied kinds of domains known as graphs.
Graphs are complex and evolving, so, to extract data from these complex graphs, we need an efficient query mechanism that focuses on the domain model and encourages "What to retrieve?" instead of "How to retrieve?".
Neo4j introduces a powerful, declarative, and SQL-inspired graph query language, Cypher.
Cypher is designed to be a humane query language, that leverages the concepts of pattern and pattern matching and allows for expressive, efficient querying and updating of the graph store. Cypher is a relatively simple but very powerful language.
This chapter will provide you with an in-depth understanding of Cypher as a query language for Neo4j database. It will guide you through the anatomy of Cypher, and then will focus on the heart of Cypher: pattern and pattern matching. We will also discuss a real-world example where we will query complex graphs with Cypher.
At the end of this chapter, you will be well versed in the Cypher constructs and will be able to write Cypher queries for extracting data from complex graphs within no time.