如何解释 orientjs 查询结果?
How to interpret orientjs query result?
我通过使用 Orientjs 查询我的 OrientDB 实例,然后从查询中提取所需的数据并将其传递给 [=32=,从而在我的网页中创建一个交互式图表].我能够从 OrientDB 实例中获取数据并将其绘制成图表,但我意识到 运行 在 OrientDB Studio 中查询的结果与我通过 Orientjs 运行 查询时的结果不同。在 Studio 中,我从查询中得到 20 个节点和 67 个边。当我 运行 通过 Orientjs 进行相同的查询时,我得到了 65 个单独的对象。最初我认为每个对象代表一个节点, 'in_links'/'out_links' 是边缘。然而,显然不是这样。
所以我认为这是 3 个问题中的第一个:
- 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 是边缘。这个对吗?还是我在解释查询结果时遗漏了什么?
在 Orientjs GitHub (see here) 的人们的帮助下,我找到了答案。
当 运行 OrientDB studio 上的查询时,除非指定限制,否则每个查询都会添加一个隐式 LIMIT 20
。我返回并指定了 100 的限制,果然我渲染的节点数量与来自 Orientjs 查询的对象数量相同。从那里确认边缘的数量。所以上面关于 Orientjs 查询结果的描述是正确的:每个对象都是一个节点,in/out_links 是边。边的关键在于,如果一个顶点的in_link和另一个顶点的out_link中有相同的ID,则这两个顶点由该边连接。
我通过使用 Orientjs 查询我的 OrientDB 实例,然后从查询中提取所需的数据并将其传递给 [=32=,从而在我的网页中创建一个交互式图表].我能够从 OrientDB 实例中获取数据并将其绘制成图表,但我意识到 运行 在 OrientDB Studio 中查询的结果与我通过 Orientjs 运行 查询时的结果不同。在 Studio 中,我从查询中得到 20 个节点和 67 个边。当我 运行 通过 Orientjs 进行相同的查询时,我得到了 65 个单独的对象。最初我认为每个对象代表一个节点, 'in_links'/'out_links' 是边缘。然而,显然不是这样。
所以我认为这是 3 个问题中的第一个:
- 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 是边缘。这个对吗?还是我在解释查询结果时遗漏了什么?
在 Orientjs GitHub (see here) 的人们的帮助下,我找到了答案。
当 运行 OrientDB studio 上的查询时,除非指定限制,否则每个查询都会添加一个隐式 LIMIT 20
。我返回并指定了 100 的限制,果然我渲染的节点数量与来自 Orientjs 查询的对象数量相同。从那里确认边缘的数量。所以上面关于 Orientjs 查询结果的描述是正确的:每个对象都是一个节点,in/out_links 是边。边的关键在于,如果一个顶点的in_link和另一个顶点的out_link中有相同的ID,则这两个顶点由该边连接。