我的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索引功能来解决这个问题吗?
你可以这样做:
WHERE n.gender! = "M"
或
WHERE has(n.gender) AND n.gender = "M"