fwiw...
I updated my .Net wrapper
https://github.com/SepiaGroup/Neo4jRestNet/
you can now use LINQ on the flilter and sort commands for example
Node MyNode = Node.GetNode(123);
GremlinScript script = new GremlinScript(MyNode)
.Out("Like")
.Filter(it => it.GetProperty("MyProp").ToLowerCase() == "TestValue" ||
it.GetProperty("AnotherProp").Contains("SomeValue"))
IEnumerable<Node> ReturnNodes = Gremlin.Post<Node>(script);
You can also return a DataTable
GremlinScript script = new GremlinScript();
script.NewTable("t")
.NodeIndexLookup(new Dictionary<string, object>() { { "FirstName" ,
"Jack"
}, { "LastName", "Shaw" } })
.Filter(it => it.GetProperty("UID") == "jshaw")
.As("UserNode")
.OutE("Like")
.As("LikeRel")
.InV()
.As("FriendNode")
.Table("t", "UserNode", "LikeRel", "FriendNode")
.Append("{{it}}{{it.getProperty('{0}')}}{{it.getProperty('{1}')}} >> -1;
t","Date", "FirstName");
DataTable tbl = Gremlin.GetTable(script);
The above table example will submit the following Gremlin script to Neo4j:
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");
And the returned table will have column names of "UserNode", "LikeRel",
"FriendNode" with typed values of Node, DateTime, string (assuming the
properties are stored with the correct types)
--
View this message in context:
http://neo4j-community-discussions.438527.n3.nabble.com/Neo4jRestNet-Update-tp3436032p3436032.html
Sent from the Neo4j Community Discussions mailing list archive at Nabble.com.
_______________________________________________
Neo4j mailing list
[email protected]
https://lists.neo4j.org/mailman/listinfo/user