любой способ ограничить результат по узлу - PullRequest
0 голосов
/ 10 июля 2020

У меня есть этот запрос:

MATCH (user:Users)-[buy:Sales]->(item:Items)<-[buy2:Sales]- (user2:Users)-[buy_other:Sales]->(item2:Items)
where item.category = item2.category
return
user.mail, item2.id

идея состоит в том, чтобы получить элементы, которые могут быть интересны первому пользователю, который также купил другой пользователь 2, но я хочу ограничить результаты до 2 идентификаторов элементов 2 на каждый user

Я знаю, что могу ограничить результаты в целом, например, с ограничением 10, но это означает, что все эти 10 результатов могут быть для одного и того же пользователя.

Любая помощь? заранее спасибо

1 Ответ

0 голосов
/ 11 июля 2020

Вы можете сделать это, вставив COLLECTing и получив из него первые n элементов.

MATCH (user:Users)-[buy:Sales]->(item:Items)<-[buy2:Sales]- (user2:Users)-[buy_other:Sales]->(item2:Items)
WHERE item.category = item2.category

// this is where you collect and get some items of it
WITH user,COLLECT(item2)[0..2] AS item2s
UNWIND item2s AS item2


RETURN
user.mail, item2.id
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...