提问者:小点点

如何在稀疏属性上使用WHERE子句查询neo4jDB


我的Neo4j数据库中的节点具有某些不存在于所有节点上的属性,但我想使用带有WHERE子句的Cypher查询这些属性。

示例数据:

{id:"52", name:"Jim", age:"32", gender:"M"}
{id:"55", name:"Lisa", age:"22", gender:"F"}
{id:"97", name:"Chris", age:"38"}

现在,如果我想对性别运行Cypher查询,它会在Chris记录上给我一个错误,说明该节点上不存在性别属性。

示例密码查询:

START n=NODE(*) WHERE n.gender="M" RETURN n;

我收到的具体错误消息是:

EntityNotFoundException: The property 'gender' does not exist on Node[4925]

我正在运行Neo4j的1.9.2版。我想升级到2. x并尝试使用标签和auto_indexes。但是,我还不能离开稳定版本。

有什么方法可以使用Cypher查询或1.9.2索引功能来解决这个问题吗?


共1个答案

匿名用户

你可以这样做:

WHERE n.gender! = "M"

WHERE has(n.gender) AND n.gender = "M"