public void FilterClauseCompareToIgnoreCase2() { GremlinScript script = new GremlinScript(); script.Append("g.v(0)") .Filter(it => it.GetProperty("MyProp").CompareToIgnoreCase(it.GetProperty("CompareProperty").Name())); Assert.IsTrue(script.ToString() == "g.v(0).filter{it.getProperty('MyProp').compareToIgnoreCase(it.getProperty('CompareProperty').name)}"); }
public void FilterClauseChainCommands() { GremlinScript script = new GremlinScript(); script.Append("g.v(0)") .Filter(it => it.GetProperty("MyProp").ToLowerCase().Contains("ContainThis")); Assert.IsTrue(script.ToString() == "g.v(0).filter{it.getProperty('MyProp').toLowerCase().contains('ContainThis')}"); }
public void FilterClause() { GremlinScript script = new GremlinScript(); script.Append("g.v(0)") .Filter(it => it.GetProperty("MyProp") == "SomeValue"); Assert.IsTrue(script.ToString() == "g.v(0).filter{it.getProperty('MyProp') == 'SomeValue'}"); }
public void FilterClauseEqualBool() { GremlinScript script = new GremlinScript(); script.Append("g.v(0)") .Filter(it => it.GetProperty("MyProp") == true); Assert.IsTrue(script.ToString() == "g.v(0).filter{it.getProperty('MyProp') == true}"); }
public void FilterClauseCompound() { GremlinScript script = new GremlinScript(); script.Append("g.v(0)") .Filter(it => it.GetProperty("MyProp") && !it.GetProperty("NotProp") || it.GetProperty("OrProp").ToLowerCase() == "lower Value"); Assert.IsTrue(script.ToString() == "g.v(0).filter{it.getProperty('MyProp') && !it.getProperty('NotProp') || it.getProperty('OrProp').toLowerCase() == 'lower Value'}"); }
public void Table() { GremlinScript script = new GremlinScript(); script.NewTable("t") .NodeIndexLookup(new Dictionary<string, object>() { { NodeProperty.FirstName.ToString() , "Jack" }, { NodeProperty.LastName.ToString(), "Shaw" } }) .Filter(it => it.GetProperty(NodeProperty.UID.ToString()) == "jshaw") .As("UserNode") .OutE(RelationshipType.Likes.ToString()) .As("LikeRel") .InV() .As("FriendNode") .Table("t", "UserNode", "LikeRel", "FriendNode") .Append("{{it}}{{it.getProperty('{0}')}}{{it.getProperty('{1}')}} >> -1; t", RelationshipProperty.Date.ToString(), NodeProperty.FirstName.ToString()); Assert.IsTrue(script.ToString() == "t = new Table();g.V[['FirstName':'Jack','LastName':'Shaw']].filter{it.getProperty('UID') == 'jshaw'}.as('UserNode').outE('Likes').as('LikeRel').inV().as('FriendNode').table(t, ['UserNode','LikeRel','FriendNode']){it}{it.getProperty('Date')}{it.getProperty('FirstName')} >> -1; t"); }
static void Main(string[] args) { // Get Root Node from graphDB var rootNode = Node.GetRootNode(); // Create a User Node with no Properties var nodeUser = Node.CreateNode(NodeType.User.ToString()); // Create a User Node with Properties var prop = new Properties(); prop.SetProperty(NodeProperty.FirstName.ToString(), "Joe"); prop.SetProperty(NodeProperty.LastName.ToString(), "Smith"); var nodeUserWithName = Node.CreateNode(NodeType.User.ToString(), prop); // Create Relationships to Nodes rootNode.CreateRelationshipTo(nodeUser, RelationshipType.Likes.ToString()); rootNode.CreateRelationshipTo(nodeUserWithName, RelationshipType.Likes.ToString()); // Create Relationship with Properties var relProp = new Properties(); relProp.SetProperty(RelationshipProperty.Name.ToString(), "MyRelationship"); relProp.SetProperty("CustomRelProp", "CustomPropValue"); nodeUserWithName.CreateRelationshipTo(nodeUser, RelationshipType.Knows.ToString(), relProp); // Get Id From Node var id = rootNode.Id; var geid = rootNode.EncryptedId; // Gremlin // Same as above var sameLikeNodes = Gremlin.Post<Node>(new GremlinScript(rootNode).Out(RelationshipType.Likes.ToString())); // More Gremlin example var script = new GremlinScript(rootNode); script.OutE() .InV() .OutE() .Filter("it.getProperty('{0}') == '{1}'", RelationshipProperty.Name, "MyRelationship"); var myRelationship = Gremlin.Post<Relationship>(script); // More Gremlin example var script1 = new GremlinScript(rootNode); script1.OutE() .InV() .OutE() .Filter(it => it.GetProperty(RelationshipProperty.Name.ToString()) == "MyRelationship"); IEnumerable<Relationship> myRelationship1 = Gremlin.Post<Relationship>(script1); // Gremlin returning a datatable var tblScript = new GremlinScript(); tblScript.NewTable("t") .gV(rootNode) .Out(RelationshipType.Likes.ToString()) .As("Like") .Table("t", "Like") .Append(" >> -1; t;"); DataTable dt = Gremlin.GetTable(tblScript.ToString()); // Basic Cypher query var c1 = new Cypher(); c1.Start(s => s.Node("A", 0)); c1.Return( r => r.Node("A")); DataTable tbl = c1.Post(); // Cypher with Match clause var c2 = new Cypher(); c2.Start(s => s.Node("A", 0)); c2.Match(m => m.Node("A").To("r", "Likes").Node("B")); c2.Return(r => r.Node("A").Relationship("r").Node("B")); tbl = c2.Post(); // Cypher with multi start and return optional property var c3 = new Cypher(); c3.Start(s => s.Node("A", 0, 1)); c3.Match(m => m.Node("A").Any("r", "Likes").Node("C")); c3.Return(r => r.Node("C").Node("C").Property("Name?")); tbl = c3.Post(); // Multi Start var c4 = new Cypher(); c4.Start(s => s.Node("A", 0).Node("B",1)); c4.Return(r => r.Node("A").Node("B")); tbl = c4.Post(); // Cypher with Where clause var c5 = new Cypher(); c5.Start(s => s.Node("A", 0, 1)); c5.Where(w => w.Node("A").Property("Age?") < 30 && w.Node("A").Property("Name?") == "Tobias" || !(w.Node("A").Property("Name?") == "Tobias")); c5.Return(r => r.Node("A")); tbl = c5.Post(); // Alt Syntax var c6 = new Cypher(); c6.Start(s => { s.Node("A", 0); s.Node("B", 1); return s; }); c6.Return(r => { r.Node("A"); r.Node("B"); return r; }); tbl = c6.Post(); // Alt Syntax var c7 = new Cypher(); c7.Start(s => s.Node("MyNode", "Index-Name", "QueryString")); c7.Start(s => s.Node("A", 0)); c7.Start(s => s.Node("B", 1)); c7.Return(r => r.Node("A")); c7.Return(r => r.Node("B")); tbl = c7.Post(); }