我通过使用Orientjs查询我的 OrientDB 实例,然后从查询中提取所需的数据并将其传递给 cytoscape.js,从而在我的网页中创建一个交互式图表。我能够从 OrientDB 实例中获取数据并将其绘制成图表,但我意识到在 OrientDB Studio 中运行查询的结果与通过 Orientjs 运行查询时的结果不同。在 Studio 中,我从查询中得到 20 个节点和 67 条边。当我通过 Orientjs 运行相同的查询时,我得到了 65 个单独的对象。最初我认为每个对象都代表一个节点,而“in_links”/“out_links”是边缘。然而,显然情况并非如此。
所以我认为这是 3 个问题中的 1 个:
- Orientjs 只是不工作,并给我返回坏数据(我认为并希望这不太可能)。
- 我以某种方式在 OrientDB 的两个不同实例上运行查询(我很确定这是不可能的)。
- 我没有正确解释来自 Orientjs 的查询结果,因此没有正确地将它们输入到 cytoscape.js 中(我认为这很可能是问题所在)。
以下是我从查询中返回的对象的一些示例:
{
"@class": "<class_name>",
"@type": "d",
"Cluster_ID": 8,
"@rid": "#25:5",
"@version": 1
},
{
"@class": "<class_name>",
"@type": "d",
"out_links": [
"#33:65",
"#34:65",
"#35:65",
"#36:65",
"#33:67",
"#34:67",
"#35:67",
"#36:67",
"#33:69",
"#34:69",
"#35:69",
"#36:69",
"#33:71",
"#34:71",
"#35:71",
"#36:71",
"#36:127",
"#37:126",
"#38:126",
"#39:126",
"#40:126",
"#37:130",
"#38:129",
"#39:129",
"#40:129",
"#33:130",
"#38:133",
"#39:132",
"#40:132",
"#33:133",
"#34:133",
"#39:136",
"#40:135",
"#33:136",
"#34:136",
"#35:136"
],
"Cluster_ID": 0,
"@rid": "#25:6",
"@version": 9
},
{
"@class": "<class_name>",
"@type": "d",
"Cluster_ID": 8,
"@rid": "#25:7",
"@version": 1
},
{
"@class": "<class_name>",
"@type": "d",
"out_links": [
"#36:112",
"#37:112",
"#38:112",
"#39:112",
"#40:111",
"#37:115",
"#38:115",
"#39:115",
"#40:115",
"#33:115"
],
"in_links": [
"#38:95",
"#35:94",
"#40:94",
"#37:93",
"#34:93",
"#33:105",
"#38:103",
"#35:104",
"#40:102",
"#37:102"
],
"Cluster_ID": 3,
"@rid": "#25:8",
"@version": 5
}
就像我提到的,我认为这些中的每一个都代表一个节点,而 in/out_links 是边缘。这个对吗?还是我在解释查询结果时遗漏了什么?