2016-03-24 2 views
0

Я начал изучать Neo4j Cypher. Я использую Neo4j Sample Movie Graph Database.NEo4j Результат запроса

Ниже приведен пример Cypher I и ожидающий, что Cypher вернет результат 1964, но его значение NULL для его возвращения.

Не могли бы вы сообщить мне.

МАТЧА (Том: Лицо), где tom.Name = "Tom Hanks" возвращает tom.born; Пройдя через учебник Neo4j Я обнаружил, что у отношения есть свойство. Когда я запускаю запрос ниже, это также приводит к NULL. Где, как я ожидаю, отношение «ACTED_IN» имеет роль proprty. Поэтому он должен возвращать значение «роль».

матч (: Person {name: 'Keanu Reeves'}) - [rel] -> (M) RETURN M.title, rel.property;

Заранее спасибо.

С уважением Faizan

+0

MATCH (за: Person {Name: "Том Хэнкс"}) возвращение per.born; также написал cypher, чтобы получить год рождения для Тома Хэнкса, но запрос возвращает null. Но когда я пишу Обратный cypher, то есть Даю родившийся год и могу получить имя. здесь cypher MATCH (per: Person {born: 1964}) return per.name ;. Итак, почему я получаю NULL, когда пишу Имя, попробуйте узнать год рождения. – Faiz

ответ

2

свойства чувствительны к регистру. Вы используете Name, когда объект находится name. Попробуйте:

MATCH (tom:Person) WHERE tom.name = "Tom Hanks" RETURN tom.born; 

Для другого запроса, property не является собственностью на :ACTED_IN отношения. Он называется roles. Попробуйте:

MATCH (:Person {name:'Keanu Reeves'})-[rel]->(M) 
RETURN M.title, rel.roles; 

Если вы хотите, ключи свойств на этих отношений:

MATCH (:Person {name:'Keanu Reeves'})-[rel]->(M) 
RETURN M.title, KEYS(rel); 
+0

Большое спасибо за информацию. – Faiz

Смежные вопросы