Skip to content
SepiaGroup edited this page Dec 8, 2011 · 5 revisions

Home > Cypher Index

  1. Related nodes
  2. Outgoing relationships
  3. Directed relationships and identifier
  4. Match by relationship type
  5. Match by relationship type and use an identifier
  6. Relationship types with uncommon characters
  7. Multiple relationships
  8. Variable length relationships
  9. Zero length paths
  10. Optional relationship
  11. Optional typed and named relationship
  12. Properties on optional elements
  13. Complex matching
  14. Shortest path
  15. Named path
  16. Matching on a bound relationship

1. Related nodes

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").Any().Node("x"));
cypher.Return(r => r.Node("x"));
var tblResult = cypher.Post();

2. Outgoing relationships

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To().Node("x"));
cypher.Return(r => r.Node("x"));
var tblResult = cypher.Post();

3. Directed relationships and identifier

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To("r", null).Node());
cypher.Return(r => r.Relationship("r"));
var tblResult = cypher.Post();

4. Match by relationship type

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To("BLOCKS").Node("x"));
cypher.Return(r => r.Node("x"));
var tblResult = cypher.Post();

5. Match by relationship type and use an identifier

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To("r", "BLOCKS").Node());
cypher.Return(r => r.Relationship("r"));
var tblResult = cypher.Post();

6. Relationship types with uncommon characters

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To("r", string.Format("'{0}'", "TYPE WITH SPACE IN IT")).Node());
cypher.Return(r => r.Relationship("r"));
var tblResult = cypher.Post();

7. Multiple relationships

var cypher = new Cypher();
cypher.Start(s => s.Node("n", 3));
cypher.Match(m => m.Node("n").To("KNOWS").Node("b").To("r", "KNOWS").Node(c));
cypher.Return(r => r.Node("a").Node("b").Node("c"));
var tblResult = cypher.Post();

8. Variable length relationships

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 3).Node("x", 2, 4));
cypher.Match(m => m.Node("a").To("KNOWS", 1, 3).Node("x"));
cypher.Return(r => r.Node("a").Node("x"));
var tblResult = cypher.Post();

9. Zero length paths

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 3));
cypher.Match(m => m.Path("p1", "a", "KNOWS", 0, 1, "b"));
cypher.Match(m => m.Path("p2", "b", "BLOCKS", 0, 1, "c"));
cypher.Return(r => r.Node("a").Node("b").Node("c").Length("p1").Length("p2"));
var tblResult = cypher.Post();

10. Optional relationship

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 2));
cypher.Match(m => m.Node("a").To(true).Node("x"));
cypher.Return(r => r.Node("a").Node("x"));
var tblResult = cypher.Post();

11. Optional typed and named relationship

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 3));
cypher.Match(m => m.Node("a").To("r", "LOVES", true).Node());
cypher.Return(r => r.Node("a").Relationship("r"));
var tblResult = cypher.Post();

12. Properties on optional elements

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 2));
cypher.Match(m => m.Node("a").To(true).Node("x"));
cypher.Return(r => r.Node("x").Node("x").Property("name"));
var tblResult = cypher.Post();

13. Complex matching

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 3));
cypher.Match(m => m.Node("a").To("KNOWS").Node("b").To("KNOWS").Node("c"));
cypher.Match(m => m.Node("a").Any("BLOCKS").Node("d").Any("KNOWS).Node("c"));
cypher.Return(r => r.Node("a").Node("b").Node("c").Node("d"));
var tblResult = cypher.Post();

14. Shortest path

var cypher = new Cypher();
cypher.Start(s => s.Node("d", 1).Node("d", 2));
cypher.Match(m => m.ShortestPath("p", "d", "e", 15));
cypher.Return(r => r.Path("p"));
var tblResult = cypher.Post();

15. Named path

var cypher = new Cypher();
cypher.Start(s => s.Node("a", 3));
cypher.Match(m => m.Path("p", "a", "b"));
cypher.Return(r => r.Path("p"));
var tblResult = cypher.Post();

16. Matching on a bound relationship

var cypher = new Cypher();
cypher.Start(s => s.Relationship("r", 0));
cypher.Match(m => m.Node("a").Any("r").Node("b"));
cypher.Return(r => r.Node("a").Node("b"));
var tblResult = cypher.Post();