Я пытаюсь вернуть ограниченное количество вершин, соответствующих шаблону, а также общее (неограниченное) количество вершин, соответствующих этому шаблону.
g.V()
.hasLabel("PersonPublic")
.has('partitionKey', "Q2r1NaG6KWdScX4RaeZs")
.has('docId', "Q2r1NaG6KWdScX4RaeZs")
.out("CONTACT_LIST")
.out("SUBSCRIBER")
.dedup()
.order()
.by("identifier")
.by("docId")
.fold()
.project('people','total')
.by(
unfold()
.has('docId', gt("23")),
.limit(2)
.project('type','id')
.by(label())
.by(values('docId'))
)
.by(unfold().count())
Проще говоря, я нахожу человека, нахожу все списки контактов этого человека, нахожу всех подписчиков в эти списки контактов, устраняю дубликаты подписчиков, упорядочиваю подписчиков, останавливаюсь там, чтобы собрать все, а затем проецирую результаты в форма
{
people: [{type: string, id: string}],
total: number,
}
Часть прогноза "люди" разворачивается, фильтруется, чтобы содержать только результаты с "docId" больше, чем "23", ограничивается до 2, а затем проецируется снова.
«Итоговая» часть прогноза разворачивается (без лимита) и засчитывается.
Моя цель состоит в том, чтобы разрешить листание по шаблону, сохраняя при этом общее количество вершин, связанных с шаблоном.
К сожалению, в cosmosdb этот запрос не работает. Результаты в форме
{
people: {type: string, id: string},
total: number,
}
И возвращается только результат от первого лица (а не массив).
Любая помощь будет принята с благодарностью!