Neo4j gem - Отдельный запрос с Paginate

Как я могу заставить мой подключенный массив работать с методом paginate (который, я считаю, работает только с объектами queryproxy)

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

current_user.friends....where()...params().pluck('DISTINCT e').paginate..

Есть ли другой способ обойти это? или нужно будет внести изменения в самоцвет neo4j?

1 ответ

Прямо сейчас это невозможно сделать с помощью paginate метод. WillPaginate возвращается WillPaginate::Collection объекты, которые уже заполнены из базы данных. Мы могли бы заставить его вернуть что-то другое и лениво оценить, но мне придется больше с этим поиграть.

Вы можете создать Neo4j::Paginated Объекты напрямую, но это просто результаты из QP.

# match stupid friends with awful events, return distinct events
query = current_user.friends(:f).where(stupid: true).events(e:).rel_where(expected_attendees: 0)
@bad_events = Neo4j::Paginated.create_from(query, 1, 15).pluck('distinct e')

create_from возвращает Neo4j::Paginated объект, который делегирует each а также pluck к его объекту QueryProxy, переданному ему. Обратите внимание, что он будет разбивать на страницы в зависимости от конца цепочки, поэтому он делает первую страницу с 15 на страницу на основе событий. Также обратите внимание, что вы не можете сделать четкий подсчет.

Проверьте https://github.com/neo4jrb/neo4j/blob/master/lib/neo4j/paginated.rb для получения дополнительной информации. Это довольно легко читать.

Другие вопросы по тегам