neo4j - 查找在 10 分钟内出现 3 次以上的节点
问题描述
我有一个具有startTime
属性的节点列表。我需要确定该列表是否包含 3 个或更多节点startTime
,彼此之间的间隔在 10 分钟内。我不需要获取丛中的节点,我只需要一个布尔值来指示这种丛的存在。
我很茫然,我尝试过的一切都失败了,以至于不值得发布它们。
我觉得我错过了一些容易的事情。
解决方案
这应该是可行的。
首先,您需要收集 startTimes、订购它们并收集它们。
从那里,您需要获取将包含一组 3 个的相关配对(每个条目,以及在持续时间结束前的条目 2 索引),然后查看该配对的开始时间是否在 10 分钟内发生彼此的。
假设为了示例:具有startTime
属性的事件节点,您可以使用此查询来获得所需的结果:
MATCH (e:Event)
WITH e
ORDER BY e.startTime ASC
WITH collect(e.startTime)[1..] as times
WITH times, range(0, size(times) - 3) as indices
RETURN any(index in indices WHERE times[index + 2] <= times[index] + duration({minutes:10}))
推荐阅读
- javascript - 如何使用 Web 音频 API 在 javascript 中连续生成原始音频样本?
- ios - UITableView willDisplay 在调用 API 分页时不断调用自身,问题在于异步 API 调用
- php - 如何缓存 IMAP 套接字资源?
- macos - 无法在 Mac 上打开 PyCharm IDE -StartupAbortedException
- android - Android Activity Recognition 真的很糟糕
- function - 装配 X86,分割时出现分段错误
- visual-studio - 尝试为 MinGW-w64 的 VS Code 安装 C/C++ 扩展时遇到问题
- rabbitmq - ZeroMQ 或 RabbitMQ 用于边缘应用程序?
- javascript - 如何在js中window.open的url中使用var
- react-native - 如何在 React 导航屏幕之间共享状态?