我对Neo4j很新,只是从上周五开始学习。
我想知道我们如何才能获得具有相同类型的所有节点。 我想创建列出系统中所有用户的页面。
我的想法现在有两种方法: 1 Cypher with where子句:
CYPHER 2.0 START n=node(*)
WHERE n.type = 'user'
RETURN n
2具有索引类型属性的Cypher
START n=node:userindex(type = 'user') RETURN n
我知道如果userindex只包含密钥类型的用户值,则它不具有选择性,不适合索引。
我不知道哪一个是最好的方法,因为我发现的所有例子都是从一开始 一个或两个节点,并开始查找与起始节点有关系的其他节点。
非常感谢你。
答案 0 :(得分:4)
您想要使用labels。这可能是您的查询:
MATCH (user:User)
RETURN user;
答案 1 :(得分:1)
使用Neo4j v2.1.0的完整示例
CREATE (n:Person { name: "Tim" });
CREATE (n:Animal { name: "Tom" });
START m=node(*) RETURN m;
+---------------------+
| m |
+---------------------+
| Node[0]{name:"Tim"} |
| Node[1]{name:"Tom"} |
+---------------------+
START m=node(*) MATCH (m:Person) RETURN m;
+---------------------+
| m |
+---------------------+
| Node[0]{name:"Tim"} |
+---------------------+
START m=node(*) MATCH (m:Animal) RETURN m;
+---------------------+
| m |
+---------------------+
| Node[1]{name:"Tom"} |
+---------------------+
START m=node(*) RETURN m, labels(m);
+----------------------------------+
| m | labels(m) |
+----------------------------------+
| Node[0]{name:"Tim"} | ["Person"] |
| Node[1]{name:"Tom"} | ["Animal"] |
+----------------------------------+
答案 2 :(得分:0)
START n =节点(*) 在哪里(n.type)和n.type ='用户' 返回
答案 3 :(得分:0)
如果您想要退回userindex
中的所有用户,请使用:
START u=node:userindex("*:*")
RETURN u
并返回所有用户名的列表(假设每个用户都有name
属性):
START u=node:userindex("*:*")
RETURN u.name as names