2016-02-09 2 views
1

У меня есть следующие вершины и ребра.Невозможно получить список комментариев в сообщении с использованием запроса гремлина

User1 -> create ->Post1 
Post1 -> postedOnWall -> User2 
User2 -> create ->Comment1 
Comment1 -> PostedOnComment -> Post1 
User3 -> create -> Comment2 
Comment2 -> PostedOnComment -> Post1 

User1 создал Post1 и разместил его на стене User2. Теперь User2 создал комментарий и разместил его на Post1. и User3 также опубликовал комментарий к тому же сообщению.

Как я могу получить список всех сообщений на стене пользователя вместе со всеми комментариями в каждом сообщении.

Я список пост получать по следующему запросу.

g.v (512) .в ('метка', 'WallPost') рода {} it.PostedTime .reverse().() .as ('postInfo') [0..10] .in ('label', 'Comment').() .as ('комментарий'). Выберите {он} {это}

Am не в состоянии найти способ, чтобы получить список замечаний по каждой должности.

ответ

1

С помощью команды select() вам очень близко, но я думаю, что transform() может быть тем, что вы ищете. Я опубликовал полный результат сеанса Gremlin консоли в gist, но ключевая часть заключается в следующем:

gremlin> g.V('name','user2').in('PostedOnWall').sort{ a, b -> b.PostedTime <=> a.PostedTime }._().transform{ [post: it.msg, comments: it.in('PostedOnComment').msg.toList()] } 
==>{post=what is for dinner?, comments=[tacos]} 
==>{post=hello, comments=[buenos dias, bongiorno]} 
+0

Спасибо :) она работает. –

Смежные вопросы