Query Edge Nodes & Edge Properties - PullRequest
       9

Query Edge Nodes & Edge Properties

0 голосов
/ 05 декабря 2018

Я хотел бы получить список свойств ребер в виде

[ {'src': nodeid, 'dst': nodeid, 'item': itemid},
  {'src': nodeid, 'dst': nodeid, 'item': itemid},
  ...
]

. См. этот вопрос . Я сформулирую запрос следующим образом в gremlin_python:

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                project('src','dst','item'). \
                    by(outV().id()). \
                    by(inV().id()) \
                    by(coalesce(values('item_id'),constant(''))). \
                .toList()

Однако я получил следующую ошибку

TypeError: 'Column' object is not callable

Я могу получить список 'src' и 'dst' с помощью

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                project('src','dst'). \
                    by(outV().id()). \
                    by(inV().id()) \
                .toList()

Сделал ли япропустить любое ключевое слово python?Или я могу знать, какое ограничение лежит в gremlin python?


Обновления:

В моем случае у меня есть обходной путь для этого.Однако будут извлечены только те ребра, которые содержат (src, dst, item).

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
                has('item'). \
                project('src','dst'). \
                    by(outV().id()). \
                    by(inV().id()) \
                    by('item'). \
                toList()

1 Ответ

0 голосов
/ 05 декабря 2018

Я предполагаю, что values('item_id') каким-то образом путают с перечислением Column.values.То, что вы хотите, это шаг обхода values(), который предоставляется из класса __.Импортировав класс __, попробуйте изменить код на:

g.V(user_list).bothE().hasLabel('share_item').dedup(). \
            project('src','dst','item'). \
                by(outV().id()). \
                by(inV().id()) \
                by(coalesce(__.values('item_id'),constant(''))). \
            .toList()
...