Properties 触发密码时EntityNotFoundException

Properties 触发密码时EntityNotFoundException,properties,console,neo4j,nodes,cypher,Properties,Console,Neo4j,Nodes,Cypher,我是neo4j的新手,我真的需要帮助 我已经创建了节点属性名称、电子邮件和年龄。这些节点具有以下关系:是的朋友,因为与其他节点具有属性 我以“A”、“B”、“C”、“D”等名称给出了属性值 现在,当我在控制台中启动一个查询时,比如:Start n=node(*),其中n.NAME='a'返回n 它给出的异常类似于:EntityNotFoundException:节点[0]上不存在属性“NAME” 现在,如果我在节点[0]上添加一个property NAME=“”,然后触发相同的查询,那么它将提供

我是neo4j的新手,我真的需要帮助

我已经创建了节点属性名称、电子邮件和年龄。这些节点具有以下关系:是的朋友,因为与其他节点具有属性

我以“A”、“B”、“C”、“D”等名称给出了属性值

现在,当我在控制台中启动一个查询时,比如:Start n=node(*),其中n.NAME='a'返回n

它给出的异常类似于:EntityNotFoundException:节点[0]上不存在属性“NAME”

现在,如果我在节点[0]上添加一个property NAME=“”,然后触发相同的查询,那么它将提供正确的输出。对于较小的数据集,它可以工作,但对于较大的数据集,为节点[0]指定每个属性似乎不是一个好的解决方案

这是唯一的解决方法还是其他更好的方法

STARTn=node(*) WHERE n.NAME! = "A" RETURN n
感叹号将执行以下操作:

如果n.prop=value,则为TRUE;如果n为NULL或n.prop不存在,则为FALSE


Cypher有两个特殊操作符:在这种情况下用于处理此异常

使用?如果缺少n.prop,则将计算为true:

START n=node(*) WHERE n.NAME? = "A" RETURN n
START n=node(*) WHERE n.NAME! = "A" RETURN n
和使用!如果缺少n.prop,则计算结果将为false:

START n=node(*) WHERE n.NAME? = "A" RETURN n
START n=node(*) WHERE n.NAME! = "A" RETURN n

你建立索引了吗?