Использование Neo4j с Cypherвысчитывать предел в Neo4j включая повторяющиеся строки
Я пытаюсь aquire что является по существу пользователей «стена». В этой стене есть сообщения от вас, ваших друзей и комментарии к сообщениям.
Это мой запрос до сих пор:
match (a:Account)-[:FRIEND*0..1]->(friend:Account)-[:POST]->(post:Post)
where a.uid = "u132984734sas"
optional match (post)<-[:COMMENT*0..1]-(comment:Comment)<-[:AUTHOR]-(commentAuthor:Account)
return friend,post,comment,commentAuthor
ORDER BY post.date_created DESC
LIMIT 10
Обратите внимание на LIMIT 10
Ну, я почти ожидал, что это, но так же, как доктриной в PHP при извлечении вложенных массивов вещей, здесь ряд возвращается с участием сообщение верхнего уровня и один комментарий для каждого комментария в сообщении.
Что это означает, если есть 20 сообщений, которые соответствуют этим критериям, не извлекая комментарии, было бы вернуться назад 10 фактическими сообщения благодарности LIMIT
критерияма
позволяет сказать, что один пост в течение первых 10 результатов имеют 2 комментариев в он, теперь в результирующем наборе будет отображаться только 9 сообщений вместо 10. Поскольку первый комментарий всегда возвращается в первой строке, если он доступен, он не уменьшает число, возвращаемое результирующим набором, но каждый дополнительный комментарий за сообщение , делает.
Я бы хотел получить 10 достоверных результатов здесь, но я не уверен, что делать здесь.
Для краткости я использую Everyman\Neo4JPHP
Я даже предполагается, запрашивая 50 сообщений и обрезку только через собирание 10 лучших результатов, но это, очевидно, не кажется правильным хаха
Вы хотите, чтобы 10 сообщений каждый раз? Просто используйте 'collect (comment), collect (commentAuthor)' в предложении return, и он соберет все комментарии в массив/коллекцию. Тогда каждая возвращенная строка будет 1 сообщение, и у вас всегда будет 10 сообщений, независимо от того, сколько комментариев от них будет отвиснуть. – FrobberOfBits
@FrobberOfBits OH YA! Я смутно помню, как читал о сборе функции в документации, но полностью забыл об этом. Я не могу дождаться, когда попробую это, когда вернусь на свою рабочую станцию. Спасибо! – RedactedProfile