Я работаю над переносом информации из другой базы данных в базу данных Tinkerpop, используя TinkerPop3 Java. У меня есть большое количество идентификаторов, хранящихся в одной вершине, которые мне нужно преобразовать в ребро между двумя вершинами.
Допустим, я запустил следующий код, чтобы создать граф игрушек Modern, и добавил свойство «друг» Джоша с соответствующим именем его друга «Марко».
graph = TinkerFactory.createModern()
g = graph.traversal()
g.V().has("name","josh").property("friend","marko")
Мне нужен запрос, который программно найдет все вершины со свойством «друг», найдет соответствующую вершину, имя которой совпадает, и создаст ребро с надписью «друзья» между ними. В идеале это должен быть один запрос, так как мне нужно сканировать большое количество вершин.
Следующий запрос найдет вершины, в которых есть друзья, и имена этих друзей, но я не знаю, как найти вершину с совпадающим именем, не разбивая поиск на несколько запросов.
g.V().has("friend").as("a").values("friend").as("b").select("a","b")
Спасибо !!