ArangoDb 获取具有属性的边
ArangoDb get edges with properties
我正在使用 ArangoDb 最新版本,但遇到问题。
我有两个 collections:
国家(这是文档 collection)和距离(这是边缘 collection,键为:_from、_to、distance)。
如何通过 AQL 获取有关 Country.Continent = 'Europe'
的国家/地区与边缘 collection 之间的距离的所有信息?
SQL 会像这样:
Select * from Country c, Distance d where c.Continent = 'Europe'
谢谢。
我最近在做一个项目,开始使用ArangoDB,希望能对你有所帮助。
我从 Arango 和 AQL 文档的以下链接中获得了一些灵感来回答我的问题:
请查看下面我的 AQL 查询,如果有帮助请告诉我。您可以将 FILTER 上的 'Europe' 部分替换为 @Continent,这将允许您在需要时动态指定它。
FOR country IN Country
FILTER country.Continent == 'Europe'
FOR vertex, edge, path
IN OUTBOUND country Distance
RETURN path
这为我产生了以下结果。我刚刚创建了一些测试集,其中有 2 个边将国家连接在一起。我已经在 'FOR' 部分包含了查询的顶点、边和路径,因此欢迎您通过替换顶点或边来尝试最后的 'RETURN' 部分并查看为您带来什么结果。
[
{
"edges": [
{
"_key": "67168",
"_id": "Distance/67168",
"_from": "Country/67057",
"_to": "Country/67094",
"_rev": "_aecXk7---_",
"Distance": 5
}
],
"vertices": [
{
"_key": "67057",
"_id": "Country/67057",
"_rev": "_aecWJ0q--_",
"countryName": "UK",
"Continent": "Europe"
},
{
"_key": "67094",
"_id": "Country/67094",
"_rev": "_aecWZhi--_",
"countryName": "Italy",
"Continent": "Europe"
}
]
},
{
"edges": [
{
"_key": "67222",
"_id": "Distance/67222",
"_from": "Country/67057",
"_to": "Country/67113",
"_rev": "_aecYB9---_",
"Distance": 10
}
],
"vertices": [
{
"_key": "67057",
"_id": "Country/67057",
"_rev": "_aecWJ0q--_",
"countryName": "UK",
"Continent": "Europe"
},
{
"_key": "67113",
"_id": "Country/67113",
"_rev": "_aecWmEy--_",
"countryName": "Spain",
"Continent": "Europe"
}
]
}
]
例如,如果您将 'RETURN path' 部分替换为 'RETURN edge',您将只检索边,如果这就是您所需要的,如下所示:
[
{
"_key": "67168",
"_id": "Distance/67168",
"_from": "Country/67057",
"_to": "Country/67094",
"_rev": "_aecXk7---_",
"Distance": 5
},
{
"_key": "67222",
"_id": "Distance/67222",
"_from": "Country/67057",
"_to": "Country/67113",
"_rev": "_aecYB9---_",
"Distance": 10
}
]
我正在使用 ArangoDb 最新版本,但遇到问题。 我有两个 collections:
国家(这是文档 collection)和距离(这是边缘 collection,键为:_from、_to、distance)。
如何通过 AQL 获取有关 Country.Continent = 'Europe'
的国家/地区与边缘 collection 之间的距离的所有信息?
SQL 会像这样:
Select * from Country c, Distance d where c.Continent = 'Europe'
谢谢。
我最近在做一个项目,开始使用ArangoDB,希望能对你有所帮助。
我从 Arango 和 AQL 文档的以下链接中获得了一些灵感来回答我的问题:
请查看下面我的 AQL 查询,如果有帮助请告诉我。您可以将 FILTER 上的 'Europe' 部分替换为 @Continent,这将允许您在需要时动态指定它。
FOR country IN Country
FILTER country.Continent == 'Europe'
FOR vertex, edge, path
IN OUTBOUND country Distance
RETURN path
这为我产生了以下结果。我刚刚创建了一些测试集,其中有 2 个边将国家连接在一起。我已经在 'FOR' 部分包含了查询的顶点、边和路径,因此欢迎您通过替换顶点或边来尝试最后的 'RETURN' 部分并查看为您带来什么结果。
[
{
"edges": [
{
"_key": "67168",
"_id": "Distance/67168",
"_from": "Country/67057",
"_to": "Country/67094",
"_rev": "_aecXk7---_",
"Distance": 5
}
],
"vertices": [
{
"_key": "67057",
"_id": "Country/67057",
"_rev": "_aecWJ0q--_",
"countryName": "UK",
"Continent": "Europe"
},
{
"_key": "67094",
"_id": "Country/67094",
"_rev": "_aecWZhi--_",
"countryName": "Italy",
"Continent": "Europe"
}
]
},
{
"edges": [
{
"_key": "67222",
"_id": "Distance/67222",
"_from": "Country/67057",
"_to": "Country/67113",
"_rev": "_aecYB9---_",
"Distance": 10
}
],
"vertices": [
{
"_key": "67057",
"_id": "Country/67057",
"_rev": "_aecWJ0q--_",
"countryName": "UK",
"Continent": "Europe"
},
{
"_key": "67113",
"_id": "Country/67113",
"_rev": "_aecWmEy--_",
"countryName": "Spain",
"Continent": "Europe"
}
]
}
]
例如,如果您将 'RETURN path' 部分替换为 'RETURN edge',您将只检索边,如果这就是您所需要的,如下所示:
[
{
"_key": "67168",
"_id": "Distance/67168",
"_from": "Country/67057",
"_to": "Country/67094",
"_rev": "_aecXk7---_",
"Distance": 5
},
{
"_key": "67222",
"_id": "Distance/67222",
"_from": "Country/67057",
"_to": "Country/67113",
"_rev": "_aecYB9---_",
"Distance": 10
}
]