Neo4j CQL - MATCH命令
Neo4j CQL MATCH 命令用于
-
从数据库获取有关节点和属性的数据
-
从数据库获取有关节点,关系和属性的数据
MATCH 命令语法:
[sql]
1
2
3
4MATCH
(
<node-name>:<label-name>
)
实际测试
我们前面创建的信息:
[sql]
1
2CREATE (dept:Dept {deptNo:10, name:'财务组', location:'上海'});
CREATE (emp:Employee {name:'老马啸西风', age:20, deptNo:10, id:1});
返回部门
我们执行
[sql]
1MATCH (dept:Dept)
会报错:
[plaintext]
1
2
3Query cannot conclude with MATCH (must be a RETURN clause, an update clause, a unit subquery call, or a procedure call with no YIELD) (line 1, column 1 (offset: 0))
"MATCH (dept:Dept)"
^
需要和 return 结合起来用:
[sql]
1
2MATCH (dept:Dept)
RETURN dept;
返回的内容:
[plaintext]
1
2
3
4
5╒═══════════════════════════════════════════════╕
│dept │
╞═══════════════════════════════════════════════╡
│(:Dept {name: "财务组",location: "上海",deptNo: 10})│
└───────────────────────────────────────────────┘
返回雇员
[sql]
1
2MATCH (emp:Employee)
RETURN emp;
会返回所有的
[plaintext]
1
2
3
4
5
6
7╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee) │
├────────────────────────────────────────────────────┤
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
指定查询 age=20 的
[sql]
1
2MATCH (emp:Employee{age:20})
RETURN emp;
结果:
[plaintext]
1
2
3
4
5╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
或者这么写:
[sql]
1
2
3MATCH (emp:Employee)
WHERE emp.age=20
RETURN emp;
结果如下:
[plaintext]
1
2
3
4
5╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
RETURN 子句
Neo4j CQL RETURN子句用于 -
-
检索节点的某些属性
-
检索节点的所有属性
-
检索节点和关联关系的某些属性
-
检索节点和关联关系的所有属性
RETURN 命令语法
[sql]
1
2
3
4RETURN
<node-name>.<property1-name>,
........
<node-name>.<propertyn-name>
这个命令必须和 match 结合使用
MATCH Command
RETURN Command
实例
比如我们只返回雇员的名字 + AGE
[sql]
1
2MATCH(emp:Employee)
RETURN emp.name, emp.age
结果:
[plaintext]
1
2
3
4
5
6
7╒════════╤═══════╕
│emp.name│emp.age│
╞════════╪═══════╡
│null │null │
├────────┼───────┤
│"老马啸西风" │20 │
└────────┴───────┘
当然也可以结合 where
[sql]
1
2
3MATCH(emp:Employee)
where emp.age = 20
RETURN emp.name, emp.age
结果如下:
[plaintext]
1
2
3
4
5╒════════╤═══════╕
│emp.name│emp.age│
╞════════╪═══════╡
│"老马啸西风" │20 │
└────────┴───────┘
参考资料
https://www.w3cschool.cn/neo4j/neo4j_cql_create_node.html
https://www.w3cschool.cn/neo4j/neo4j_cql_return_clause.html