neo4j - 在密码中,返回关系属性中具有最新日期的节点
问题描述
这是场景。我正在为居住在一个或多个不同地点的人建模。关系中包括他们搬入时的开始日期(表示为自纪元以来的毫秒数)。
(:person{name:'bill'}) -[:livesAt {since:1111000}]->(:place{name:'apartmentA'})
(:person{name:'bill'}) -[:livesAt {since:2222000}]->(:place{name:'apartmentB'})
我想编写一个查询,该查询返回与给定人员的最近居住地相对应的单一地点节点。最近的地点对应于关系的'since'属性中的最大值。请注意,多个人可能住在一个给定的地方。
我正在尝试这样的事情:
MATCH (n:person {name: 'bill'})-[r:livesAt]->(m:place)
WITH r
ORDER BY r.since DESC
LIMIT 1
MATCH (n:person)-[r]->(o:place)
RETURN o.name
如果我的查询与上面的示例一起使用,我希望得到“apartmentB”作为结果。
解决方案
问题(可能)位于最后一个匹配子句上。我在 Neo4j SandBox 上测试了一个更简单的版本,看起来还可以:
MATCH (n:person {name: 'bill'})-[r:livesAt]->(m:place)
WITH n, m
ORDER BY r.since DESC
LIMIT 1
RETURN m.name as place, n.name as person
推荐阅读
- docker - 如何在 docker 容器内编辑 tomcat 配置文件?
- vue.js - Vue + Webpack:将 config.js 排除在打包工作之外,但它不会加载
- vue.js - 在不同的环境中打包nuxt app
- bash - cp 不复制特殊字符
- python - 这个结构是什么以及如何使用它?
- excel - 无法绕过 SAP 连接中的运行时错误 619
- ios - Visual Studio 2017 Window 10. 突然无法连接到MAC
- java - 使用 keypressed() 方法的图像更改问题
- powershell - foreach (#file in $files){ nul find "2019" $file save(D:\Export2019\$file) }
- angular - 如何使用 onAfterClose 对 sweetalert 进行单元测试