【发布时间】:2020-07-31 16:29:37
【问题描述】:
我有一个查询,我希望结果按用户确定的字段排序。我希望这不是一个古怪的功能。但我不知道如何在 Neo4J/Cypher 中做到这一点。
这是基本查询:
MATCH (o:SomeThing)
ORDER BY o.id
SKIP 0
LIMIT 20
RETURN o
很简单。当然ORDER BY、SKIP和LIMIT需要用户提供,所以我们得到这个:
const query = `MATCH (o:SomeThing)
ORDER BY $order
SKIP $skip
LIMIT $limit
RETURN o`;
session.run(query, { order: 'o.name', skip: 0, limit: 20 });
这适用于跳过和限制,但ORDER BY 不起作用。它可能不起作用,因为order 包含一个字符串,而我们需要一个字段表达式。但是如何将它作为参数传递呢?
这些文档不是很有帮助。听起来这确实是不可能的,但对于如此明显的用例来说,这听起来令人难以置信。那我错过了什么?
【问题讨论】: