0

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

我已经创建了节点属性 NAME、EMAIL 和 AGE。这些节点有关系: IS_FRIEND_OF 与属性 SINCE 与其他节点。

我将 NAME 中的属性值指定为“A”、“B”、“C”、“D”等。

现在,当我在控制台中触发查询时,例如: Start n=node(*) where n.NAME='A' return n;

它给出了一个异常,如:EntityNotFoundException:节点 [0] 上不存在属性“名称”

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

它是唯一的解决方法还是可以应用其他更好的方法?

4

2 回答 2

1
STARTn=node(*) WHERE n.NAME! = "A" RETURN n

感叹号将执行以下操作:

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

于 2013-06-07T13:27:19.020 回答
1

Cypher 有两个特殊的运算符:? 在这种情况下使用来处理这个异常

使用 ?如果 n.prop 缺失,将评估为 true:

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

并使用!如果 n.prop 缺失,将评估为 false:

START n=node(*) WHERE n.NAME! = "A" RETURN n
于 2013-06-10T15:38:34.597 回答