Neo4j 跳过和限制是否基于ORDER子句?
我有这样一个问题:Neo4j 跳过和限制是否基于ORDER子句?,neo4j,Neo4j,我有这样一个问题: MATCH (card:`card`), (event:`event`), (card)<-[:includes_card]-(event) WHERE card.id = "0000000978LBtZz08W5439Mvo" OPTIONAL MATCH (actor:`user`), (card)-[includes_actor_rel:includes_actor]->(actor) RETURN event, actor, inc
MATCH
(card:`card`),
(event:`event`),
(card)<-[:includes_card]-(event)
WHERE
card.id = "0000000978LBtZz08W5439Mvo"
OPTIONAL MATCH
(actor:`user`),
(card)-[includes_actor_rel:includes_actor]->(actor)
RETURN event, actor, includes_actor_rel
ORDER BY event.created_at DESC
SKIP 50
LIMIT 5
匹配
(卡片:`card`),
(事件:`event`),
(演员)
返回事件,actor,包括\u actor\u rel
按事件排序。在描述处创建
跳过50
限制5
SKIP
和LIMIT
子句是否适用于返回的事件节点数?我这样问是因为,虽然我想返回actor和relationship,但我不希望actor和relationship节点影响分页
如果不是这样,那么在不同的事件
节点上正确分页的最佳方法是什么
谢谢 我会这样写这个查询:
MATCH
(card:card {id: "0000000978LBtZz08W5439Mvo"})
WITH
card
MATCH
(event)-[:includes_card]->(card:card)
WITH
card, event ORDER BY event.created_at DESC SKIP 50 LIMIT 5
MATCH
(card)-[includes_actor_rel:includes_actor]->(actor:user)
RETURN
event, actor, includes_actor_rel
您的查询将为每个
includes\u actor\u rel
关系返回一行(其中一些关系可以共享相同的事件
值),而这正是SKIP
和LIMIT
子句将应用的内容
要将跳过
和限制
子句应用于事件
,可以执行以下操作:
MATCH
(card:card)<-[:includes_card]-(event:event)
WHERE
card.id = "0000000978LBtZz08W5439Mvo"
OPTIONAL MATCH
(card)-[includes_actor_rel:includes_actor]->(actor:user)
RETURN event, COLLECT({actor: actor, rel: includes_actor_rel}) AS data
ORDER BY event.created_at DESC
SKIP 50
LIMIT 5;
匹配
(卡片:卡片)(参与者:用户)
返回事件,收集({actor:actor,rel:includes_actor_rel})作为数据
按事件排序。在描述处创建
跳过50
限值5;
此查询的
COLLECT()
函数使用event
作为分组键,为同一event
创建所有actor/rel对的集合。这将导致每个事件
产生一个结果行,从而允许跳过
和限制
子句应用于事件,谢谢!据我所知,您是在包含附加数据之前应用分页吗?如果是这样,返回卡片、事件而不是返回事件是否会影响分页?还有,第一张卡片的目的是什么?这是最简单的解决方案。回答我自己的问题。。。唯一必需的WITH子句是最后一个。此外,LIMIT和SKIP子句对行进行操作,因此不会影响分页。