I understand it is possible to use the wildcard (*) symbol to return all references in a Cypher query, such as:
MATCH p:Product WHERE p.price='1950' RETURN *;
==> +----------------------------------------------------------------+
==> | p |
==> +----------------------------------------------------------------+
==> | Node[686]{title:"Giorgio Armani Briefcase",price:"1950",... |
==> +----------------------------------------------------------------+
However, the result is a row with a single node 'column' named "p", from which the properties can be accessed. However, I'd like the result-set 'rows' to have the property names as 'columns'. Something like:
MATCH p:Product WHERE p.price='1950' RETURN p.*;
==> +-------------------------------------------+
==> | title | price | ... |
==> +-------------------------------------------+
==> | "Giorgio Armani Briefcase" | "1950" | ... |
==> +-------------------------------------------+
That particular query isn't valid, but is there a way to achieve the same result (short of listing all the properties explicitly, as in p.title,p.price,p... )?
You can't do this in Cypher yet. I think it would be a nice feature though, if you want to request it.
Edit (thanks for comment pointing it out): You can now do this as of 2.2:
MATCH (p:Product) WHERE p.price='1950' RETURN keys(p);