tag A 跟 tag B存在边关系,怎么查询没有跟tag B 关联的A1列表

需要查询某一个时间段内,未与tag B关联的A1列表,由于需要按照时间过滤,当前想到需要用match,MINUS只适用于nGQL扩展,请求有什么方法可以在一次查询中返回数据呢?

tag 是从属于点的,tag 和 tag 之间是彼此独立的关系,:thinking: 你是不是混了点和 tag 的关系。

某一类的节点A1都打上了 tag A, 另一类节点B2打上了tag B, A1跟B1可能存在关联关系,要查询未与B1关联的集合A11

1 个赞

某一类的节点A1都打上了 tag A, 另一类节点B2打上了tag B, A1跟B1可能存在关联关系,要查询未与B1关联的集合A11

MATCH (v:A) RETURN id(v)
MINUS 
MATCH (v:A)--(:B) RETURN id(v)

时间段是 A 的属性吗

时间段是A 的属性,另外,返回的结果希望还希望包括A的其他属性
另外 还需要支持分页,比如说每次只查20条记录

(MATCH (v:A) RETURN id(v), v.name
MINUS 
MATCH (v:A)--(:B) RETURN id(v), v.name) | limit 20

非常感谢

另外,如果想把分页结果、跟未关联B的A1列表总数一起返回,这个又要怎么处理呢

没太明白,你期待的返回格式是什么样的?未关联 B 的 A 的数量可以用聚合函数。

未关联B的A总数: XX,
未关联B的TOP20:{A1 列表}

现在还不支持,后续版本我们会增加对多 pattern 和多语句的支持。
你的需求对应的 cypher 描述:

MATCH (v:A)
WHERE not exists((v)--(:B))
WITH count(*) AS total
MATCH (v:A)
WHERE not exists((v)--(:B))
WITH v.name AS vname,total ORDER BY v.name LIMIT 20
RETURN collect(vname),total

WHERE not exists((v)–(:B))

这个语法在哪个版本支持的? 我们现在用的v2.0.1版本,试了一下,报错了

错误信息:SyntaxError: syntax error near `:SubFeat’

现在还不支持,关注一下后续版本

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。

浙ICP备20010487号