【发布时间】:2025-12-04 16:10:02
【问题描述】:
数据模型是:
书籍 - 文档
页面 - 文档。页面可能只包含对另一本书的引用
books_pages - 边缘。从一本书到另一页,从一页到另一本书
例子:
book1 -> (edge) -> page1 -> (edge) -> book2
book1 -> (edge) -> page2 -> (edge) -> book2
book1 -> (edge) -> page3 -> (edge) -> book2
book1 -> (edge) -> page4 -> (edge) -> book3
book2 -> (edge) -> page5 -> (edge) -> book4
book2 -> (edge) -> page6 -> (edge) -> book4
book2 -> (edge) -> page7 -> (edge) -> book4
book2 -> (edge) -> page6 -> (edge) -> book4
...
目标是在书籍之间建立边缘以避免重复。 book1 包含几个提到 book2 的页面,但我只需要一个边缘。在 book1 中引用 book2 的次数无关紧要。
AQL:
FOR b1 IN books
FOR v IN 1..1 OUTBOUND b1 books_pages
FOR b2 IN 1..1 OUTBOUND v books_pages
COLLECT from = b1._id, to = b2._id
RETURN {'from':from, 'to': to}
当数据库中的文档数量很大时,arangodb 崩溃。这个查询有问题还是这只是 arangodb 方面的错误?
【问题讨论】: