OrientDB Graph API: SQL 查询的处理结果
OrientDB Graph API: process results of SQL query
我正在探索与 OrientDB 图交互的方法。我正在编写 java 代码,所以我正在使用某种 java API。由于 tinkerpop 被描述为图形数据库中的 "JDBC",我天真地假设执行查询然后处理结果集是等效的。
从图表中,我可以这样调用:
graph.command(new OCommandSQL("SELECT FROM class")).execute();
然后呢? "execute" 方法 returns 一个对象,不是很有帮助。通过打印结果对象的 class 名称,它似乎是一个 "OrientDynaElementIterable",不管它是什么。
所以我不确定我是否理解如何 运行 查询然后遍历结果。总的来说,我实际上不理解 tinkerpop,因为我正在处理大量特定于 OrientDB 的 classes,奇怪的是它们是 tinkerpop 规范的一部分,那么这如何使我的代码可以跨图形数据库移植?
从图形命令中检索 Vertex
的 Iterable
。
for (Vertex v : (Iterable<Vertex>) graph.command
(new OCommandSQL("SELECT FROM class").execute()) {
// Do something with vertex v
}
可以检索文档here您可以在其中找到以下示例
for (Vertex v : (Iterable<Vertex>) graph.command(
new OCommandSQL("SELECT EXPAND( out('bought') ) FROM Customer WHERE name = 'Jay'")).execute()) {
System.out.println("- Bought: " + v);
}
我正在探索与 OrientDB 图交互的方法。我正在编写 java 代码,所以我正在使用某种 java API。由于 tinkerpop 被描述为图形数据库中的 "JDBC",我天真地假设执行查询然后处理结果集是等效的。
从图表中,我可以这样调用:
graph.command(new OCommandSQL("SELECT FROM class")).execute();
然后呢? "execute" 方法 returns 一个对象,不是很有帮助。通过打印结果对象的 class 名称,它似乎是一个 "OrientDynaElementIterable",不管它是什么。
所以我不确定我是否理解如何 运行 查询然后遍历结果。总的来说,我实际上不理解 tinkerpop,因为我正在处理大量特定于 OrientDB 的 classes,奇怪的是它们是 tinkerpop 规范的一部分,那么这如何使我的代码可以跨图形数据库移植?
从图形命令中检索 Vertex
的 Iterable
。
for (Vertex v : (Iterable<Vertex>) graph.command
(new OCommandSQL("SELECT FROM class").execute()) {
// Do something with vertex v
}
可以检索文档here您可以在其中找到以下示例
for (Vertex v : (Iterable<Vertex>) graph.command(
new OCommandSQL("SELECT EXPAND( out('bought') ) FROM Customer WHERE name = 'Jay'")).execute()) {
System.out.println("- Bought: " + v);
}