Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 返回某一年出生的学生的Cypher查询_Neo4j_Cypher - Fatal编程技术网

Neo4j 返回某一年出生的学生的Cypher查询

Neo4j 返回某一年出生的学生的Cypher查询,neo4j,cypher,Neo4j,Cypher,在我的Neo4j数据库中,有一个节点,标记为students。学生节点具有date_of_birth属性,其类型为date(例如:date_of_birth:“1997-01-01”)。我想把所有在1997年出生的学生都还给他们 我试着这样做: match (n:Student) with n.date_of_birth as d where d.year="1997" return n 但我得到了这个错误: Neo.ClientError.Statement.SyntaxError:变量

在我的Neo4j数据库中,有一个节点,标记为students。学生节点具有date_of_birth属性,其类型为date(例如:date_of_birth:“1997-01-01”)。我想把所有在1997年出生的学生都还给他们

我试着这样做:

match (n:Student) 
with n.date_of_birth as d 
where d.year="1997"
return n
但我得到了这个错误: Neo.ClientError.Statement.SyntaxError:变量
n
未定义(“返回n”^)

为什么此查询中没有定义
n
,我应该如何更改查询以获得所需的结果?

有两件事:

1)
WITH
语句只显式地传递您告诉它的内容,因此如果希望
n
返回中可用,则需要包含
n

2)
日期的
.year
是数字,因此您需要将其与数字而不是字符串进行比较,因此
1997
而不是
“1997”

这将使查询:

MATCH (n:Student)
WITH n, n.date_of_birth as d
WHERE d.year == 1997
RETURN n
有两件事:

1)
WITH
语句只显式地传递您告诉它的内容,因此如果希望
n
返回中可用,则需要包含
n

2)
日期的
.year
是数字,因此您需要将其与数字而不是字符串进行比较,因此
1997
而不是
“1997”

这将使查询:

MATCH (n:Student)
WITH n, n.date_of_birth as d
WHERE d.year == 1997
RETURN n

是否匹配(n:Student)where n.date\u of_birth.year=“1997”返回n
使用
删除
…否则,您需要在
中包含
n
…例如:
将(n:Student)与n,n.date\u of_birth作为d where d.year=“1997”return n
…我尝试了你的两个建议,但在这两个建议中我都没有得到任何结果try
d.year=1997
如果没有引号,那么它很可能是一个数字…?现在我得到了预期的结果。非常感谢!是否匹配(n:Student)n.date\u of_birth.year=“1997”return n
执行该操作(即…使用
删除
。。否则,您需要在
中使用
包含
n
。。例如:
将(n:Student)与n,n.出生日期匹配为d,其中d.year=“1997”return n
…我尝试了你的两个建议,但都没有得到任何结果try
d.year=1997
如果没有引号,那么它很可能是一个数字…?现在我得到了预期的结果。非常感谢!