我正在为我的应用程序评估 ArangoDb。我有一个像文件系统这样的数据模型,有一个 Items 文档集合和一个 ItemsParents 边缘集合,其中包含关于 Items 的父子关系。
现在我想找到具有特定属性的特定项目的所有孩子
例如:A 的所有子级属性 Properties.Age.Value = 20
所以我在 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 }
上面的查询运行良好,但没有使用索引,因此它对测试 Properties.Age.Value 过滤器的 Items 集合执行全面扫描。
如何设计查询以使其高效地使用索引并避免集合扫描?
谢谢