繁体   English   中英

使用Cypher Neo4j通过(从SQL世界中的表名中选择*)获取具有给定类型的所有节点

[英]Get all nodes with given type by ( select * from tablename in SQL world) with Cypher Neo4j

我是Neo4j的新手,只是从上周五开始学习它。

我想知道我们如何才能获得所有具有相同类型的节点。 我想创建一个列出系统中所有用户的页面。

我的想法现在有两种方法:1使用where子句的Cypher:

CYPHER 2.0  START n=node(*) 
WHERE n.type = 'user' 
RETURN n

2个在类型属性上建立索引的密码

START n=node:userindex(type = 'user') RETURN n

我知道,如果userindex仅包含键类型的用户值,则它不是选择性的,也不适合索引。

我不知道哪种方法是最好的方法,因为我发现的所有示例大多都是从一个或两个节点开始,然后开始查找与起始节点有关系的其他节点。

非常感谢。

您将为此使用标签 这可能是您的查询:

MATCH (user:User)
RETURN user;

使用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"] |
+----------------------------------+

开始n = node(*)在哪里(n.type)AND n.type ='user'返回n

如果要返回userindex所有用户,请使用:

START u=node:userindex("*:*")
RETURN u

并返回所有用户名的列表(假设每个用户都具有name属性):

START u=node:userindex("*:*")
RETURN u.name as names

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM