Home > OS >  neo4j return map of properties ID
neo4j return map of properties ID

Time:01-13

I want to get back a map (dictionary) of the properties of my nodes in cypher along with the ID of the nodes. I have the following code that does not work:

match (n:person) 
with n limit 5
with  properties(n) oldID:ID(n) as info
return info

This does not create a single dictionary with the properties and the ID. I have tried different formats but nothing seems to work. What am I doing wrong here?

CodePudding user response:

You could just do

match (n:person) 
with n limit 5
with  {props:properties(n), oldID:ID(n)} as info
return info

CodePudding user response:

You can return the properties along with the id like this :

MATCH (n:Person)
RETURN n{.*, oldID: id(n)} AS info
LIMIT 5

Result :

╒═══════════════════════════════════════════════════╕
│"info"                                             │
╞═══════════════════════════════════════════════════╡
│{"born":1964,"name":"Keanu Reeves","oldID":1}      │
├───────────────────────────────────────────────────┤
│{"born":1967,"name":"Carrie-Anne Moss","oldID":2}  │
├───────────────────────────────────────────────────┤
│{"born":1961,"name":"Laurence Fishburne","oldID":3}│
├───────────────────────────────────────────────────┤
│{"born":1960,"name":"Hugo Weaving","oldID":4}      │
├───────────────────────────────────────────────────┤
│{"born":1967,"name":"Lilly Wachowski","oldID":5}   │
└───────────────────────────────────────────────────┘

Useful resource for learning Map projections https://neo4j.com/developer-blog/a-comprehensive-guide-to-cypher-map-projection/

  • Related