I have several questions?
How can i query the node by its property? I see only to query by node id.
And how can I get, for example all friends and unconfirmed friends of the node? At the moment I can do that only by querying the all relationships of the node, and iterate over it by checking the property of each relationship.
My idea as the following: a node has parameter - id (userID), relationship has properties - directions - FROM_ME or TO_ME, status - CONFIRMED, UNCONFIRMED. All the quries are performed in REST API in Java.
How can I do that in the simple way like in SQL, f.e., SELECT friends WHERE friend_id = 1?
References to some tutorials with the solutions and techniques of such questions qould be appreciated
To answer your first question, you can use indexes to quickly find nodes by a property on the node. Docs for REST here: http://docs.neo4j.org/chunked/milestone/rest-api-indexes.html
ReplyDeleteFor the second question, Cypher query language makes it easy to perform these types of queries. Here is an example that gets all users that are connected to a given user via a FRIEND relationship where the "status" property of the relationship is "confirmed":
START user=node(123)
MATCH user-[r:FRIEND]-friend
WHERE r.status="confirmed"
RETURN friend
You can also add constraints on the direction of the relationship and chain multiple relationships together in a path to find friends-of-friends, etc.
Here are the Cypher docs: http://docs.neo4j.org/chunked/milestone/cypher-query-lang.html
Here are the docs on making Cypher queries via the REST API: http://docs.neo4j.org/chunked/milestone/rest-api-cypher.html