我想选择数据库中与任何其他节点没有给定关系类型的所有节点。
这是我的数据库结构:我有发布事件节点的用户节点。发布关系更具体,有各种类型的关系,比如type1
和type2
。
如何快速选择与事件有type1
关系但与事件没有关系的所有用户节点type2
。
这是我现在使用的查询:
START u = node:users("*:*")
MATCH (ev1)<-[r1:type1]-(u)-[r2?:type2]->(ev2)
WHERE r2 IS NULL
RETURN u
问题是 r2 是一个可选的关系。这使得上述查询非常慢,证实了 neo4j 文档所说的内容。
如何提高此查询的速度?我可以更好地对数据进行建模以提高性能吗?
谢谢!亚历克斯