我有以下 super 简单的图表:
我想做的是:
- 选择问题文档中名为firstQuestion 且值为true 的属性的所有问题。
- 选择通过 with_options 类型的出站边缘连接到问题的任何选项
以下查询有效,但是感觉必须有一种更好的方法来检查边缘类型,而不使用字符串操作 - 特别是我用来通过将边缘类型连接到键来重新创建边缘 _id 值的串联操作我想要 - 这是检查边缘类型的最佳方法吗?
FOR question IN questions
FILTER question.firstQuestion == true
let options =
(FOR v, e IN 1..1 OUTBOUND question._id GRAPH 'mygraph'
FILTER CONCAT('with_options/', e._key) == e._id
RETURN v)
RETURN {question: question, options: options}
最佳答案
我们目前正在推出 IS_SAME_COLLECTION使用 ArangoDB 2.8.1 来实现该特定目的。 DOCUMENT在这方面,功能也值得一提。
FOR question IN questions
FILTER question.firstQuestion == true
LET options = (FOR v, e IN 1..1 OUTBOUND question._id GRAPH 'mygraph'
FILTER IS_SAME_COLLECTION('with_options', e._id)
RETURN v)
RETURN {question: question, options: options}
但是,这种特殊情况下的最佳解决方案不是使用命名图形接口(interface),而是 specify the list of edge collections that should be concerned by the traversal第一名:
FOR question IN questions
FILTER question.firstQuestion == true
LET options = (FOR v, e IN 1..1 OUTBOUND question._id with_options RETURN v)
RETURN {question: question, options: options}
关于arangodb - 在 AQL 中按类型过滤图边的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35070470/