在向查询添加附加特异性后无法检索节点的属性

问题描述 投票:-1回答:1

我对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“上游”的变化?

cypher
1个回答
0
投票

此问题已得到解决。查询运行良好,实际上图中有意外数据导致了这些结果。几个“人”节点缺少属性。

© www.soinside.com 2019 - 2024. All rights reserved.