Я довольно новичок в Neo4j и Neo4jClient, и я только начинаю писать свободно владеющие Cypher, чтобы создать отношения, если они еще не существуют. Я запускаю Neo4j 2.0 beta, так как примеры в вики Neo4jClient, по-видимому, равны 2.0.Ошибка Neo4jClient - SyntaxException: для идентификации узлов в шаблонах требуются скобки .CreateUnique
Когда я запускаю его я получаю следующее сообщение об ошибке:
SyntaxException: Parenthesis are required to identify nodes in patterns
"CREATE UNIQUE app-[:APP_OF]->{root}"
^
В^точек на дефис после приложения.
Я был бы очень признателен, если бы кто-нибудь мог сказать мне, что я сделал неправильно.
Это два вопроса cypher, которые создают приложение, если оно еще не существует, а затем создайте связь, если она не существует.
// Create App
client.Cypher
.Merge("(app:App {Id: {id}})")
.OnCreate("app")
.Set("app = {newApp}")
.WithParams(new { id = a.Id, newApp = a })
.ExecuteWithoutResults();
// Create Relationship
client.Cypher
.Match("(app:App)")
.Where((App app) => app.Id == a.Id)
.CreateUnique("app-[:APP_OF]->{root}") // this is the error line
.WithParam("root", client.RootNode)
.ExecuteWithoutResults();
Интересно, есть ли способ объединить их в один запрос?
И должен ли я беспокоиться о подключении к корневому узлу, или нормально, чтобы узлы приложения плавали. Я понимаю, что стартовый узел больше не требуется, так что соединение с корнем не требуется? Тем не менее, мне все равно нужен этот код для других отношений.
Большое спасибо за вашу помощь :)
Edit: Это пример, я следовал из http://hg.readify.net/neo4jclient/wiki/cypher-examples
graphClient.Cypher
.Match("(user1:User)", "(user2:User)")
.Where((User user1) => user1.Id == 123)
.AndWhere((User user2) => user2.Id == 456)
.CreateUnique("user1-[:FRIENDS_WITH]->user2")
.ExecuteWithoutResults();
Большое спасибо @Tatham, это мне очень поможет. Я не буду беспокоиться об отношениях с корневым узлом, но я буду использовать это для других отношений. Я рассмотрю документ обесценивания, так как большинство примеров и руководств, которые я нахожу, кроме вашего, относятся к 1.9. Я также буду больше смотреть на Сайфера, чтобы лучше понять его. Большое спасибо! – tekiegirl