设计密码查询时遇到了一些麻烦。
我有一个图形数据结构,使用
及时记录一些数据(starting_node)-[:last]->(data1)-[:previous]->(data2)-[:previous]->(data3)->...
每个数据节点都有一个日期,有些数据作为我想要求和的属性。
现在,为了举例,让我们说我想查询上周发生的事情。 我得到的更接近的是查询类似
的内容start n= ... // definition of the many starting nodes here
match n-[:last]->d1, path = d1-[:previous*0..7]->dn
where dn.date > some_date_a_week_ago
不幸的是,当我走上正确的道路时,我也得到了所有中间路径(从2天前开始,从3天前开始......等等)。
由于有许多起始节点,因此有许多可能的路径长度,我不能在查询中询问最长的路径。此外,dn.date
可能与date_a_week_ago
不同(如果本周只有一个数据节点,上个月有一个数据节点,则预期路径长度为1)。
有关如何过滤查询中的中间路径的任何提示?
提前致谢!
ps:顺便说一句,我对图形建模很新,如果需要,我会对任何需要更改图形结构的答案感兴趣。
答案 0 :(得分:3)
您可以在路径中添加另一个点“dnnext”,并添加一个条件以确保“dn”是满足条件的最后一个,
start n= ... // definition of the many starting nodes here
match n-[:last]->d1, path = d1-[:previous*0..7]->dn-[:previous*0..1]->dnnext
where dn.date > some_date_a_week_ago and dnnext < some_date_a_week