【发布时间】:2017-09-10 12:34:32
【问题描述】:
我正在为我的应用程序评估 ArangoDb。 我有一个像文件系统这样的数据模型,有一个 Items 文档集合和一个 ItemsParents 边缘集合,其中包含关于 Items 的父子关系。
现在我想查找具有特定属性的特定项目的所有子项
例如:属性 Properties.Age.Value = 20 的 A 的所有子节点
所以我在 Items.Properties.Age.Value 上创建了一个哈希索引,并设计了这个 AQL 查询:
FOR item
IN GRAPH_NEIGHBORS('ItemsGraph', 'Items/A',
{ direction : 'outbound',
includeData: true,
neighborExamples : { 'Properties.Age.Value': 20 }
})
RETURN { Id: item._key, Name: item.Name }
上述查询运行良好,但没有使用索引,因此它对 Items 集合执行完整扫描以测试 Properties.Age.Value 过滤器。
如何设计查询以使其使用索引高效执行并避免集合扫描?
谢谢
【问题讨论】:
标签: graph-databases arangodb aql document-database nosql