-
Notifications
You must be signed in to change notification settings - Fork 7
Cypher Match
SepiaGroup edited this page Dec 8, 2011
·
5 revisions
- Related nodes
- Outgoing relationships
- Directed relationships and identifier
- Match by relationship type
- Match by relationship type and use an identifier
- Relationship types with uncommon characters
- Multiple relationships
- Variable length relationships
- Zero length paths
- Optional relationship
- Optional typed and named relationship
- Properties on optional elements
- Complex matching
- Shortest path
- Named path
- Matching on a bound relationship
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();
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();