gpt4 book ai didi

traversal - ArangoDB:通过图遍历聚合计数

转载 作者:行者123 更新时间:2023-12-02 06:25:59 26 4
gpt4 key购买 nike

在我的 ArangoDB 图中,我有一个主题、与该主题关联的消息线程以及这些消息线程内的消息。我想以返回与消息线程关联的数据以及消息线程内的消息计数的方式遍历该图。

数据的结构相当简单:我有主题节点、延伸到与日期和类别相关联的线程节点的边,以及从线程节点到消息节点的边。

我想返回存储在线程节点中的数据以及附加到线程的消息计数。

我不确定如何使用 for v, e, p in 1..2 outbound 语法执行此操作。我应该只对出站中的 v, e, p 执行 for v, e, p 并在其中包含嵌套图吗?这仍然有效吗?

最佳答案

抱歉延迟了,我们正在努力开发 3.1 版本;)

我认为您已经找到了正确的解决方案:在 1..2 OUTBOUND 语句中表达您想要实现的目标并不容易。用两个 1..1 OUTBOUND 语句来表述要容易得多。

根据您的解释,我认为您将使用以下查询:

FOR thread IN 1 OUTBOUND @start @@threadEdges
LET nr = COUNT(FOR message IN 1 OUTBOUND thread @@messageEdges RETURN 1)
RETURN {
date: thread.date,
category: thread.category,
messages: nr
}

一些解释:我首先选择关联的线程。接下来,我执行一个子查询来简单地获取一个线程的消息。最后我返回了我需要的信息。

在性能方面:就数据访问而言(这很可能是“瓶颈”操作),FOR x IN 1..2 OUTBOUND [...]FOR x IN 1 OUTBOUND 没有区别[...] FOR y IN 1 OUTBOUND x [...] 两者都必须查看完全相同的文档。在后一种情况下,查询优化可能会慢一些,但差异远低于1ms

关于traversal - ArangoDB:通过图遍历聚合计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39625239/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com