我是Neo4j的初学者,需要帮助。是否有用于获取最高学位的前几个节点的查询?
我有名为 P
的节点和名为 A
的节点。P
节点和A
节点之间只有链接。我想拥有前 10 个节点P
这些节点与节点的链接最多A
。
我的想法是以下查询,但花了这么多时间!
MATCH (P1:P)-[r]->(A1:A)
RETURN P1.name AS P_name, COUNT(A1) AS A_no
ORDER BY no DESC
LIMIT 10
我的查询有问题吗?
最好
莫维
数据库中有多少个节点?
我可能不会为此使用密码,Java API实际上有一个node.getDegree()
方法,它要快得多。
您的查询可能会加快一点
MATCH (P1:P)-->()
RETURN id(P1),count(*) as degree
ORDER BY degree DESC LIMIT 10
您也可以尝试:
MATCH (P1:P)
RETURN id(P1),size((P1)-->()) as degree
ORDER BY degree DESC LIMIT 10
对于限制节点:
MATCH (P1:P)
WHERE P1.foo = "bar"
WITH P1 limit 10000
MATCH (P1)-->()
RETURN id(P1),count(*) as degree
ORDER BY degree DESC LIMIT 10