我在Cypher支架查询其发现某个设备的最新的最后一次。我想所有的设备匹配我的数据库,他们的最后一次属性是最新的他们的设备,然后返回其ID。不幸的是,我无法创建一个适当的子查询。
我一直在使用与和实例{},但无法找到任何工作尝试。
主要大宗(的作品):
MATCH (a:device)
MATCH (b:device)
WHERE certain filters
RETURN
CASE
WHEN a.last_seen > MAX(b.last_seen) THEN a.last_seen
WHEN a.last_seen < MAX(b.last_seen) THEN MAX(b.last_seen)
ELSE a.last_seen END AS lastest
然后,我想做的事:
MATCH (d:device)
WHERE d.last_seen = lastest
RETURN d.device_id
无论我试过这么远我只是语法错误。我怎么巢批量查询?
你可以使用MAX功能的最新last_seen。
然后,你可以用它来获得所有最新的last_seen的设备。
下面是该查询得到last_seen的最大值,然后得到所有匹配这个last_seen的设备。
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建议,添加物业last_seen指数