我刚刚开始使用neo4jclient,我正在努力使用cypher查询。我使用了来自here的查询,但我没弄明白如何才能得到结果并与之合作。
首先我将一些节点放在数据库中,然后我想要检索它们(在这种情况下是一个),我尝试了这个:
var u = client.Cypher
.Match("(user:User)")
.Where((User user) => user.Id == 1)
.Return(user => user.As<User>());
Console.WriteLine(u.Results.ToList().First().Id);
(我确信数据库中存在节点,并且Id = 1的节点)
但是在结果方法的路线上,我得到了这个例外:
SyntaxException:预期START或CREATE “MATCH(用户:用户)”
我是neo4j的初学者,我无法找到如何访问和处理查询结果,所以我想请你帮忙。提前谢谢。
答案 0 :(得分:1)
您收到的错误是说您需要使用START
或CREATE
子句启动Cypher查询。这向我表明你正在对抗Neo4j 1.9或更低版本。 START
子句在Neo4j 2.0中只是可选的。
如果您正在开始一个新项目,我建议您使用Neo4j 2.0。最终版本尚未发布,但预览肯定足够稳定,您可以开始开发,最终版本将很快推出。
如果您需要使用Neo4j 1.9,那么您需要使用包含START
子句的旧版Cypher查询。
答案 1 :(得分:-1)
这是2小时前向Neo4jClient团队报告的一个已知问题:https://bitbucket.org/Readify/neo4jclient/issue/163/neo4j-v2m6-client-syntax-error
作为解决方法试试这个:
var u = client.Cypher
.Match("(user:User)")
.Where("user.Id = {userId}")
.WithParam(new {userId = 1})
.Return(user => user.As<User>());