neo4j查询错误"不知道如何比较"

时间:2015-12-29 04:10:34

标签: neo4j cypher owl

我使用隐士推理器和Java加载了带有Pizza.owl文件的Neo4j。 当我通过一个简单的查询时:

match (n) where n="name:Pizza" return n;

我收到以下错误

 Don't know how to compare that. Left: Node[1]{name:"owl:Thing"} (NodeProxy); Right: "name:Pizza" (String)

NodeProxy是数据类型吗?我怎样才能让他们两个进行比较。我可以在查询时进行投射吗?是否有任何查询来更改整个图节点的数据类型?如何检查节点的类型?

1 个答案:

答案 0 :(得分:5)

您正在将节点n与字符串“name:Pizza”进行比较,这是没有意义的。您想要的是将节点name的属性n与字符串“Pizza”进行比较:WHERE n.name = "Pizza"。然后整个查询看起来像这样

MATCH (n)
WHERE n.name = "Pizza"
RETURN n

节点实际上没有类型。请查看Neo4j manual更多关于nodes, relationships, properties and labelsCypher的信息,特别是WHERE clause