在Neo4j Cypher中NaN的字面表达是什么?

时间:2016-08-25 15:29:32

标签: neo4j cypher

如何在Cypher查询中将NaN表示为文字?

场合

我在数据库中有一个NaN值:

match (a) with max(a.CONCENTRATION) as m return m

将返回

m
---
NaN

Cypher reference in Neo4j提到这可能是存储特殊值的结果:

  

特殊值java.lang.Double.NaN被视为大于所有其他数字。

我尝试了什么

然而,现在它在那里,我不知道如何在搜索中匹配它们,因为你得到以下错误

输入

match (a) where a.CONCENTRATION = NaN return a limit 10

错误

Variable `NaN` not defined (line 1, column 35 (offset: 34))

其他参考

Cypher reference in Neo4j没有提到NaN文字,除非我错过了它。

我用谷歌搜索'Cypher NaN',但我得到的最接近的是如何添加inf / NaN,它没有被直接解决(How to add infinity, NaN, or null values to a double[] property on a node in Cypher/Neo4j)。

2 个答案:

答案 0 :(得分:3)

无法指定文字,但这应该有效:

FILE: \\Share\Location\STUDENTS.txt
USER: d155a9dd-be60-9dcb-9009-02d634192545
TYPE: person
OPER: refresh

Invoke-RestMethod : The underlying connection was closed: An unexpected error occurred on a send.
如果参数无法(根据需要)转换为数字,

MATCH (a) WHERE TOFLOAT(a.CONCENTRATION) <> a.CONCENTRATION RETURN a LIMIT 10; 将返回NULL。但是,即使可以转换参数,结果也不会等于参数,除非是数字开头。

答案 1 :(得分:0)

这在Neo4j 3.5中有效:

MATCH(a) 应力(a。浓度)='NaN' 返回a LIMIT 10;