📜  Neo4j ORDER BY子句(1)

📅  最后修改于: 2023-12-03 15:17:50.874000             🧑  作者: Mango

Neo4j ORDER BY 子句

ORDER BY 是 Neo4j 查询语言(Cypher)中的一个子句,用于对查询结果进行排序。该子句可以根据一个或多个属性来排序结果,并可以指定升序(ASC)或降序(DESC)排列。

语法
MATCH (node:Label)
ORDER BY node.property [ASC|DESC], ...
RETURN node.property, ...
  • MATCH: 匹配要查询的节点和关系(可选)
  • (node:Label): 匹配具有特定标签的节点(可选)
  • ORDER BY: 指定排序方式
  • node.property: 按节点的属性排序
  • [ASC|DESC]: 可选的排序方式,默认为升序(ASC
  • RETURN: 返回查询结果

可以按照一个或多个属性以及排序方式链式使用多个 ORDER BY 子句。

示例

考虑以下示例图:

(Alice)-[:KNOWS {since: 2020}]->(Bob)
(Carol)-[:KNOWS {since: 2019}]->(Alice)
(Dave)-[:KNOWS {since: 2021}]->(Carol)
  1. 使用单个属性进行排序:
MATCH (node:Person)
ORDER BY node.name
RETURN node.name

该查询将按节点的 name 属性以升序方式对结果进行排序。

  1. 使用多个属性进行排序:
MATCH (node:Person)
ORDER BY node.age DESC, node.name ASC
RETURN node.name, node.age

该查询将首先按节点的 age 属性以降序方式排序,然后按 name 属性以升序方式排序。

  1. 限制结果数量:
MATCH (node:Person)
RETURN node.name
ORDER BY node.age DESC
LIMIT 5

该查询将按节点的 age 属性以降序方式对结果进行排序,并返回前 5 个结果。

小结

ORDER BY 子句是 Neo4j 中用于对查询结果进行排序的强大工具。通过指定属性和排序方向,您可以快速对结果进行排序,并根据业务需求获取最相关的数据。请注意,在处理大型数据集时,使用 ORDER BY 子句可能会导致性能下降,因此请谨慎使用。