Neo4j Cypher:基于输入数组的匹配控制顺序?

Neo4j Cypher:基于输入数组的匹配控制顺序?,neo4j,cypher,Neo4j,Cypher,我正在编写一个在一组节点上迭代的查询: MATCH (foo:Bar) WHERE foo.id IN {ids} 我是否可以指定/要求/确保匹配的节点与输入ids数组的顺序相同 与Neo4j 1.x类似,这是本机ID查找的行为: START foo=node({ids}) 对于琐碎的情况,我总是可以自己在客户机上重新排序结果。在这种特殊情况下,我的查询会进行一些额外的处理,我希望确保以正确的顺序处理节点 下面是一个控制台示例: 谢谢 放松去救援 UNWIND {ids} AS id MA

我正在编写一个在一组节点上迭代的查询:

MATCH (foo:Bar)
WHERE foo.id IN {ids}
我是否可以指定/要求/确保匹配的节点与输入
ids
数组的顺序相同

与Neo4j 1.x类似,这是本机ID查找的行为:

START foo=node({ids})
对于琐碎的情况,我总是可以自己在客户机上重新排序结果。在这种特殊情况下,我的查询会进行一些额外的处理,我希望确保以正确的顺序处理节点

下面是一个控制台示例:


谢谢

放松
去救援

UNWIND {ids} AS id
MATCH (foo:Bar {id: id})

这很好,但在图db中,这是假定通过
关系来完成的,而不是通过与
集的匹配来完成的。考虑重建数据库,因此这些<代码> IDS < /代码>将有一些特定的关系模式,因此你可以<代码>匹配< /代码>他们直接不确定你的意思“ulkas”。这些仍然可以是索引查找,而不是扫描;Neo4j 2.0在Cypher中添加了一流的、基于约束的索引。我的意思是,当频繁使用
unwind
或作为主要查询语料库时,它表示错误的图形格式。neo4j graph是关于节点和顶点的,展开参数应该作为单独的节点/rel导入到图形中,因为它被用作查询的主要目标。