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_Subquery_Cypher_With Statement - Fatal编程技术网

Neo4j 如何在Cypher中使用复杂的嵌套查询

Neo4j 如何在Cypher中使用复杂的嵌套查询,neo4j,subquery,cypher,with-statement,Neo4j,Subquery,Cypher,With Statement,我有一个密码查询,可以找到某个设备最近的最后时间。 我想匹配数据库中的所有设备,其中的last time属性是设备的最新属性,然后返回它们的id。不幸的是,我无法创建正确的子查询 我尝试使用with和{}的示例,但找不到任何有效的方法 (起作用的)主要部件: 到目前为止,我所尝试的只是语法错误。如何嵌套批量查询?您可以使用MAX函数获取最近一次看到的查询。 然后,您可以使用它获取所有具有上次看到的最新版本的设备 这是一个查询,用于获取上次查看的最大值,然后获取与此上次查看匹配的所有设备 MATC

我有一个密码查询,可以找到某个设备最近的最后时间。 我想匹配数据库中的所有设备,其中的last time属性是设备的最新属性,然后返回它们的id。不幸的是,我无法创建正确的子查询

我尝试使用with和{}的示例,但找不到任何有效的方法

(起作用的)主要部件:


到目前为止,我所尝试的只是语法错误。如何嵌套批量查询?

您可以使用MAX函数获取最近一次看到的查询。

然后,您可以使用它获取所有具有上次看到的最新版本的设备

这是一个查询,用于获取上次查看的最大值,然后获取与此上次查看匹配的所有设备

MATCH (a:device)
WHERE certain filters
WITH MAX(a.last_seen) AS latest_last_seen
MATCH (d:device)
WHERE d.last_seen = latest_last_seen
RETURN d.device_id
将某些筛选器替换为要应用的筛选器。我认为您忘记在第二个查询中添加某些筛选器

编辑:按照@InverseFalcon的建议,在上次看到的属性上添加索引


您可以使用MAX函数获取最近一次看到的内容。

然后,您可以使用它获取所有具有上次看到的最新版本的设备

这是一个查询,用于获取上次查看的最大值,然后获取与此上次查看匹配的所有设备

MATCH (a:device)
WHERE certain filters
WITH MAX(a.last_seen) AS latest_last_seen
MATCH (d:device)
WHERE d.last_seen = latest_last_seen
RETURN d.device_id
将某些筛选器替换为要应用的筛选器。我认为您忘记在第二个查询中添加某些筛选器

编辑:按照@InverseFalcon的建议,在上次看到的属性上添加索引


如果在您的“主批量”中将
RETURN
替换为
with
,会发生什么情况?您能分享一下您是如何组合这两个查询的吗?当我尝试将其替换为“with”时,我得到一个语法错误,所以我用错了。如何使用?Raj-这就是我想知道的方法:)请检查我的答案…如果在“主批量”中
RETURN
替换为
with
,会发生什么情况?你能分享一下你是如何组合这两个查询的吗?当我尝试用“with”替换它时,我得到了一个语法错误,所以我用错了。如何使用?Raj-这就是我想知道的方法:)请检查我的答案…为了在最后一个匹配中快速查找,您还需要确保在:设备上有索引(上次看到)此解决方案仅适用于1个设备。我想在我的整个设备数据库上运行这个。Max在这种情况下不适用于所有设备:/这适用于所有设备,你能分享你得到的吗?您在“特定筛选器”中添加了什么?为了在最后一个匹配中快速查找,您还需要确保在:设备上有索引(上次查看)。此解决方案仅适用于1个设备。我想在我的整个设备数据库上运行这个。Max在这种情况下不适用于所有设备:/这适用于所有设备,你能分享你得到的吗?你在“特定过滤器”里放了什么?
MATCH (a:device)
WHERE certain filters
WITH MAX(a.last_seen) AS latest_last_seen
MATCH (d:device)
WHERE d.last_seen = latest_last_seen
RETURN d.device_id