ArangoDB - Как я могу вернуть только _id от AQL TRAVERSAL?
Я хочу вернуть только _id
от ребер и вершин из p.path
ниже.
LET from = (
FOR u IN products
FILTER u.name == 'pagfr21'
RETURN u._id
)
FOR p IN TRAVERSAL(products, productsrelated, from[0], 'outbound',
{minDepth: 0, maxDepth: 3, paths: true})
RETURN p.path
1 ответ
Вместо возвращения p.path
Вы могли бы собрать идентификаторы vertices
а также edges
субатрибуты и возвращают их в двух отдельных массивах, например
LET from = (FOR u IN products FILTER u.name == 'foo' RETURN u._id)
FOR p IN TRAVERSAL(products, productsrelated, from[0], 'outbound', {
minDepth: 0,
maxDepth: 3,
paths: true
})
RETURN {
vertices: p.path.vertices[*]._id,
edges: p.path.edges[*]._id
}
Он вернет такую структуру:
[
{
"vertices": [
"products/..."
],
"edges": []
},
{
"vertices": [
"products/...",
"products/..."
],
"edges": [
"productsrelated/..."
]
},
...
{
"vertices": [
"products/...",
"products/...",
"products/..."
],
"edges": [
"productsrelated/...",
"productsrelated/..."
]
}
]