Я очень плохо знаком с cypher и просто пытаюсь запустить несколько простых запросов, чтобы найти себя. Сразу же я наткнулся на случай, который кажется мне странным.
Обратите внимание, что узлы, помеченные как person
, имеют свойство: dateOfBirth
Начните с запроса всех узлов, помеченных как person
, которые идентифицируются узлом, помеченным как Identifier
, который, в свою очередь, является экземпляром узла, помеченного как IdentifierClass
.
MATCH (p:person)-[:is_identified_by]->
(id:Identifier)-[:is_instance_of]->(idClass:IdentifierClass)
RETURN p
Результаты, как и ожидалось:
p
{
"dateOfBirth": "11/13/2008"
}
{
"dateOfBirth": "11/13/2008"
}
{
"dateOfBirth": "11/13/2008"
}
Теперь это запрос, который я действительно хочу выполнить. Теперь мы указываем, что IdentifierClass
должен иметь свойство name
со значением id_type_1
.
MATCH (p:person)-[:is_identified_by]->
(id:Identifier)-[:is_instance_of]->(idClass:IdentifierClass{name:'id_type_1'})
RETURN p
Результат:
p
{
}
{
}
{
}
Таким образом, было возвращено такое же количество результатов, но теперь свойства p
недоступны. Почему добавление этой дополнительной специфичности приведет к изменению переменной p
"upstream"?