Neo4j CQL - MATCH命令
Neo4j CQL MATCH 命令用于
-
从数据库获取有关节点和属性的数据
-
从数据库获取有关节点,关系和属性的数据
MATCH 命令语法:
MATCH
(
<node-name>:<label-name>
)
实际测试
我们前面创建的信息:
CREATE (dept:Dept {deptNo:10, name:'财务组', location:'上海'});
CREATE (emp:Employee {name:'老马啸西风', age:20, deptNo:10, id:1});
返回部门
我们执行
MATCH (dept:Dept)
会报错:
Query 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 结合起来用:
MATCH (dept:Dept)
RETURN dept;
返回的内容:
╒═══════════════════════════════════════════════╕
│dept │
╞═══════════════════════════════════════════════╡
│(:Dept {name: "财务组",location: "上海",deptNo: 10})│
└───────────────────────────────────────────────┘
返回雇员
MATCH (emp:Employee)
RETURN emp;
会返回所有的
╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee) │
├────────────────────────────────────────────────────┤
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
指定查询 age=20 的
MATCH (emp:Employee{age:20})
RETURN emp;
结果:
╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
或者这么写:
MATCH (emp:Employee)
WHERE emp.age=20
RETURN emp;
结果如下:
╒════════════════════════════════════════════════════╕
│emp │
╞════════════════════════════════════════════════════╡
│(:Employee {name: "老马啸西风",id: 1,age: 20,deptNo: 10})│
└────────────────────────────────────────────────────┘
RETURN 子句
Neo4j CQL RETURN子句用于 -
-
检索节点的某些属性
-
检索节点的所有属性
-
检索节点和关联关系的某些属性
-
检索节点和关联关系的所有属性
RETURN 命令语法
RETURN
<node-name>.<property1-name>,
........
<node-name>.<propertyn-name>
这个命令必须和 match 结合使用
MATCH Command
RETURN Command
实例
比如我们只返回雇员的名字 + AGE
MATCH(emp:Employee)
RETURN emp.name, emp.age
结果:
╒════════╤═══════╕
│emp.name│emp.age│
╞════════╪═══════╡
│null │null │
├────────┼───────┤
│"老马啸西风" │20 │
└────────┴───────┘
当然也可以结合 where
MATCH(emp:Employee)
where emp.age = 20
RETURN emp.name, emp.age
结果如下:
╒════════╤═══════╕
│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