neo4j - Cypher 查询返回某年出生的学生
问题描述
在我的 Neo4j 数据库中,有一个节点,标记为学生。学生节点具有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: Variable n
not defined ("return n"^)
为什么n
未在此查询中定义,我应该如何更改查询以获得我需要的结果?
解决方案
有两件事:
1)该WITH
语句仅明确地继承您告诉它的内容,因此如果您想n
在 a 中使用,RETURN
您需要包括n
2).year
adate
是数字的,所以你需要将它与数字而不是字符串进行比较,所以1997
而不是"1997"
这将使查询:
MATCH (n:Student)
WITH n, n.date_of_birth as d
WHERE d.year == 1997
RETURN n
推荐阅读
- perl - Jenkins 的 TAP 插件
- visual-studio-code - VSCode - 无法写入用户设置
- clojure - 在 Clojure 的嵌套映射中替换多个值
- django - VS Code 在开始调试时显示“发生异常:ModuleNotFoundError”
- outlook-addin - 无法在 Android 和 IOS Outlook 应用程序上找到我的 Outlook 插件
- azure - 如何向使用 azure 函数登录的特定用户发送信号 r 消息?
- javascript - 反应表单未在浏览器中显示
- python - 如何使用 python (pyGithub) 获取 github pull request 所有审阅者
- ios - 如何在第一节iOS中显示标题文本的标题
- python - Python/Selenium:在 Xpath 中插入一个迭代器