-
Notifications
You must be signed in to change notification settings - Fork 135
Phase 2 Node relationships
ccallebs edited this page Jan 31, 2013
·
6 revisions
To create a relationship between two nodes:
n1 = Neography::Node.create
n2 = Neography::Node.create
new_rel = Neography::Relationship.create(:family, n1, n2)
new_rel.start_node # Get the start/from node of a relationship
new_rel.end_node # Get the end/to node of a relationship
new_rel.other_node(n2) # Get the other node of a relationship
Get the attributes of the relationship as an array of symbols.
new_rel.attributes # => [ :attribute1, :attribute2 ]
existing_rel = Neography::Relationship.load(12) # Get an existing relationship by id
existing_rel.del # Delete a relationship
Neography::Relationship.find(index, key, value) # advanced query of the relationship index with the given key/value pair
Neography::Relationship.find(index, query) # advanced query of the relationship index with the given query
Neography::Relationship.create(:friends, n1, n2)
n1.outgoing(:friends) << n2 # Create outgoing relationship
n1.incoming(:friends) << n2 # Create incoming relationship
n1.both(:friends) << n2 # Create both relationships
n1.outgoing # Get nodes related by outgoing relationships
n1.incoming # Get nodes related by incoming relationships
n1.both # Get nodes related by any relationships
n1.outgoing(:friends) # Get nodes related by outgoing friends relationship
n1.incoming(:friends) # Get nodes related by incoming friends relationship
n1.both(:friends) # Get nodes related by friends relationship
n1.outgoing(:friends).incoming(:enemies) # Get nodes related by one of multiple relationships
n1.outgoing(:friends).depth(2) # Get nodes related by friends and friends of friends
n1.outgoing(:friends).depth(:all) # Get nodes related by friends until the end of the graph
n1.outgoing(:friends).depth(2).include_start_node # Get n1 and nodes related by friends and friends of friends
n1.outgoing(:friends).prune("position.endNode().getProperty('name') == 'Tom';")
n1.outgoing(:friends).filter("position.length() == 2;")
n1.rel?(:friends) # Has a friends relationship
n1.rel?(:outgoing, :friends) # Has outgoing friends relationship
n1.rel?(:friends, :outgoing) # same, just the other way
n1.rel?(:outgoing) # Has any outgoing relationships
n1.rel?(:both) # Has any relationships
n1.rel?(:all) # same as above
n1.rel? # same as above
n1.rels # Get node relationships
n1.rels(:friends) # Get friends relationships
n1.rels(:friends).outgoing # Get outgoing friends relationships
n1.rels(:friends).incoming # Get incoming friends relationships
n1.rels(:friends, :work) # Get friends and work relationships
n1.rels(:friends, :work).outgoing # Get outgoing friends and work relationships