что означает двоеточие в предложении слияния в neo4j? - PullRequest
0 голосов
/ 08 мая 2019
MERGE (robert:Critic)
RETURN robert, labels(robert)

Новый узел создан, потому что в базе данных нет узлов с пометкой «Критический».Но что такое Роберт? И что означает двоеточие?

MERGE (charlie { name: 'Charlie Sheen', age: 10 })
RETURN charlie

Будет создан новый узел с именем «Чарли Шин», поскольку не все свойства соответствуют существующему узлу «Чарли Шин».но в этом примере двоеточие отсутствует, почему переменная charlie по-прежнему возвращается?

Ответы [ 2 ]

2 голосов
/ 08 мая 2019
  1. robert - это имя переменной, которая имеет значение только в запросе, в котором она используется (и не сохраняется в БД). Он определяется и создается в первый раз, когда он используется в запросе, и до тех пор, пока после него нет условия WITH, запрос всегда будет использовать robert для ссылки на тот же узел (или отношение, путь, .. .).

    Предложение WITH будет переносить только те переменные, которые оно указывает. Таким образом, WITH robert, foo позволит использовать одно и то же имя и значение переменной robert после предложения WITH. Но WITH foo приведет к тому, что robert будет забыто.

  2. Двоеточие используется в узле для обозначения следующего имени как метка . Он также используется в отношении, чтобы указать, что следующее имя является типом .

0 голосов
/ 08 мая 2019

В этом шифре Роберт является узлом, а Критик - меткой узла

MERGE (robert:Critic)

Ниже вы создаете узел (без метки узла) и со свойствами name и age

MERGE (charlie { name: 'Charlie Sheen', age: 10 })

Попробуйте ниже. Обратите внимание на двоеточие ДО метки узла

MERGE (:Critic)

Короче говоря, для ваших примеров двоеточие - это способ различения, создаете ли вы узел или метку узла, или и то и другое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...