Search icon CANCEL
Subscription
0
Cart icon
Your Cart (0 item)
Close icon
You have no products in your basket yet
Save more on your purchases now! discount-offer-chevron-icon
Savings automatically calculated. No voucher code required.
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Graph Data Processing with Cypher

You're reading from   Graph Data Processing with Cypher A practical guide to building graph traversal queries using the Cypher syntax on Neo4j

Arrow left icon
Product type Paperback
Published in Dec 2022
Publisher Packt
ISBN-13 9781804611074
Length 332 pages
Edition 1st Edition
Languages
Tools
Arrow right icon
Author (1):
Arrow left icon
Ravindranatha Anthapu Ravindranatha Anthapu
Author Profile Icon Ravindranatha Anthapu
Ravindranatha Anthapu
Arrow right icon
View More author details
Toc

Table of Contents (18) Chapters Close

Preface 1. Part 1: Cypher Introduction
2. Chapter 1: Introduction to Neo4j and Cypher FREE CHAPTER 3. Chapter 2: Components of Cypher 4. Part 2: Working with Cypher
5. Chapter 3: Loading Data with Cypher 6. Chapter 4: Querying Graph 7. Chapter 5: Filtering, Sorting, and Aggregations 8. Chapter 6: List Expressions, UNION, and Subqueries 9. Part 3: Advanced Cypher Concepts
10. Chapter 7: Working with Lists and Maps 11. Chapter 8: Advanced Query Patterns 12. Chapter 9: Query Tuning 13. Chapter 10: Using APOC Utilities 14. Chapter 11: Cypher Ecosystem 15. Chapter 12: Tips and Tricks 16. Index 17. Other Books You May Enjoy

Working with the UNWIND clause

We saw the usage of FOREACH in the previous section and explored how we can iterate a list and update the graph. But, its usage is limited. If we want to retrieve data from a graph based on the data in a list before we can update the graph, then it is not possible with FOREACH. The UNWIND clause allows us to be able to do this. Also, if we want to return some data while processing a list, then UNWIND is the option to do this.

Let’s take a look at the query we built to add a label in the previous section and build it using UNWIND:

MATCH (p:Patient)
WHERE p.marital IS NULL
WITH collect(p) as nodes
UNWIND nodes as n
SET n:UNKNOWN_STATUS

This does exactly what the FOREACH query did earlier. We find the patients who do not have a marital property set, and then we collect those nodes into a list and unwind that list to process one node at a time.

We can see from the screenshot that we updated 388 nodes, which is exactly what happened when...

lock icon The rest of the chapter is locked
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at $19.99/month. Cancel anytime