我想返回一个列表,列出在图遍历查询中遇到的所有唯一边和所有唯一顶点,这正好给出了我想要的结果,但是我执行了两次相同的查询:
LET eResults = (
FOR v,e
IN 1..2
ANY "entities/198593"
relations
OPTIONS { uniqueEdges: "path", bfs: true }
RETURN DISTINCT KEEP(e, "_key", "_from", "_to", "type")
)
LET vResults = (
FOR v,e
IN 1..2
ANY "entities/198593"
relations
OPTIONS { uniqueEdges: "path", bfs: true }
RETURN DISTINCT KEEP(v, "_key", "name")
)
RETURN { edges: eResults, vertices: vResults}
查询结果(每个边和顶点仅包含一次):
[
{
"edges": [
{
"_from": "entities/198593",
"_key": "391330",
"_to": "entities/198603",
"type": 300
},
{
"_from": "entities/198593",
"_key": "391390",
"_to": "entities/198477",
"type": 110
},
...
],
"vertices": [
{ "_key": "198603", "name": "A" },
{ "_key": "198477", "name": "B" },
...
]
}
]
如何通过一个查询获得相同的结果(唯一顶点和唯一边)?
PS:结果被 Package 在一个数组中,知道为什么吗?如何避免这种情况?
3条答案
按热度按时间wwwo4jvm1#
您可以尝试两种方法,第一种是半解决方案:
但是,您需要删除bfs:我想是的。
在此之后,您需要在浏览器的javascript中删除重复数据,或者如果您使用foxx,则可以在返回结果之前在API调用中执行此操作。
然而,如果你使用foxx,你可以在你的服务index.js文件中使用下面的JS,或者你可以在你的应用程序/网站中使用uniqueList函数,这样你就有了唯一的列表。
1.创建一个函数,根据对象的_id属性获取对象的唯一数组
1.接电话
1.调用后,通过uniqueList函数运行结果,然后返回结果
即
zpjtge222#
你很接近...
通过
FOR v,e
行,您可以访问另一个变量p
。试试这个:
编辑:如果你想删除重复的路径,可以使用
RETURN DISTINCT p
,但是我不知道如果你有uniqueEdges: "path"
,你如何得到重复的路径。看看这是否有帮助,如果没有,张贴回复,我们会看看我们能做些什么。
r3i60tvu3#
对我来说,这是一个过于复杂的练习,这样一个明显的要求,从一个图形数据库。我不评论的选项添加在前面的答案。