Neo4j---Cypher[知识图谱笔记3]

2019-08-30
才发现一个文档:https://neo4j.com/docs/cypher-manual/current,
建议实在不明白的再去看看,先看官网的教程即可

7 order by

排序关键字

例子:

//Query12: for numbers in a list, find candidates who have that many years of experience - ordered Query10
WITH [4, 5, 6, 7] AS experienceRange    // 先用with语句设置列表,方便后面调用
UNWIND experienceRange AS number        // unwind展开,取出元素
MATCH (p:Person)                        // 匹配到所有person节点
WHERE p.yearsExp = number				// 寻找属性值符合列表元素的的节点
RETURN p.name, p.yearsExp ORDER BY p.yearsExp DESC // 按照降序【DESC】排序返回所匹配到的节点

场景就是满足一般的排序,倒没什么特别

8 distinct

删去返回集合内的重复值,类似python中的set函数【虽然有点不恰当】
例子:

MATCH (user:Person)
WHERE user.twitter IS NOT null
WITH user    									  //过渡user变量名
MATCH (user)-[:LIKES]-(t:Technology)
WHERE t.type IN ['Graphs','Query Languages']
RETURN DISTINCT user.name      					//进行去重

上面的场景:【找出有twitter账号的,并且对图数据或者查询语句感兴趣的人。如果恰好一个人对两者都有兴趣,那么他的名字会出现两次导致重复,这种情况便使用 distinct关键字】

9 limit

用于对大量节点的采样,返回你所指定数量的节点
例子:

find the top 3 people who have the most friends
MATCH (p:Person)-[r:IS_FRIENDS_WITH]-(other:Person)
RETURN p.name, count(other.name) AS numberOfFriends
ORDER BY numberOfFriends DESC
LIMIT 3

上面的场景:【将节点的朋友数量按降序排序,返回前三个节点】

总结:

关键字目前就学习这么多,因为非科班还未系统学习过数据库的知识,暂时觉得很多查询语句的形式比较类似编程语言,接下来是学习大型数据的直接导入(暂且是使用python 的py2neo库),及其他更深入的知识。

你可能感兴趣的:(数据库,知识图谱)