Вот мой график
Я пытаюсь получить подробную информацию об узлах и их отношениях в java коде, а ниже мой код. Я могу получить детали узлов, но не отношения. И у java документов нет информации и методов, которые позволяют разоблачать отношения.
Мой код
import java.util.List;
import org.neo4j.driver.AuthTokens;
import org.neo4j.driver.Driver;
import org.neo4j.driver.GraphDatabase;
import org.neo4j.driver.Record;
import org.neo4j.driver.Result;
import org.neo4j.driver.Session;
import org.neo4j.driver.Value;
import org.neo4j.driver.internal.InternalResult;
public class Neo4jTest {
private Driver driver;
public Neo4jTest() {
loadDriver();
}
private void loadDriver() {
driver = GraphDatabase.driver("bolt://localhost:7687", AuthTokens.basic("neo4j", "Test"));
}
public Result createNodes(String query) {
try (Session session = driver.session())
{
InternalResult result = (InternalResult) session.writeTransaction(tx -> tx.run(query));
return result;
}
}
public List<Record> execute(String query) {
try (Session session = driver.session())
{
Result result = session.run(query);
return result.list();
}
}
public void cleanUp(String object) {
String cleanUpQuery = "match(n:" + object +") detach delete n";
execute(cleanUpQuery);
}
public void printResults(List<Record> results) {
for (Record record : results) {
Value rec = record.get("n");
System.out.print("Record --> [");
for (String key : rec.keys()) {
System.out.print(key + " : " + rec.get(key) + ", ");
}
System.out.println("]");
//TODO: Need to get all Relationship of this particular node
}
}
public static void main(String[] args) {
String createQuery = "create \n" +
"(a:People {name : \"Vivek\", age : 20}), \n" +
"(b:People {name : \"Abdul\", age : 25}), \n" +
"(c:People {name : \"John\", age : 22}),\n" +
"" +
"(a)-[:KNOWS]->(b),\n" +
"(b)-[:FRIEND_OF]->(c),\n" +
"(c)-[:KNOWS]->(a)";
String fetchQuery = "match(n:People) return n";
Neo4jTest obj = new Neo4jTest();
obj.cleanUp("People");
// Create Nodes
obj.createNodes(createQuery);
// Fetch Nodes
List<Record> results = obj.execute(fetchQuery);
// Process Results
obj.printResults(results);
}
}
Выход
Record --> [name : "Vivek", age : 20, ]
Record --> [name : "Abdul", age : 25, ]
Record --> [name : "John", age : 22, ]
JavaDo c Ссылка -> https://neo4j.com/docs/api/java-driver/current/
Соответствующие объекты результата
org.neo4j.driver.Record;
org.neo4j.driver.Value;
Другие детали
Neo4j Версия сообщества - 3.5.14
Neo4j Java Версия драйвера - 4.0.0
Обновление
(для ответа cybersam)
Первый запрос не возвращает отношения как часть переменной r.
[Обновить] И второй запрос также не возвращает отношения
Результаты в браузере и коде neo4j такие же.
Вывод для запроса
MATCH (n: People) С COLLECT (n) AS узлы MATCH (: People) - [r] -> (: People) С узлами, COLLECT (TYPE ( r)) AS rels RETURN узлы, rels
Спасибо за любую помощь!