【发布时间】:2015-05-18 15:02:21
【问题描述】:
我一直在使用 OrientDB 关于 Grateful Dead 的默认数据库。
我正在努力从两个应该提供相同结果的查询中获得相同的结果。但他们没有。
查询 1:
select from ( traverse in(sung_by) from #9:8 while $depth<=1 ) where type='song' order by @rid
这意味着:从给定节点开始,遍历所有 'sung_by' 传入边不超过 1 个节点,丢弃起始顶点。
查询 2:
select expand( in(sung_by) ) from #9:8 order by @rid
这意味着:从相同的给定顶点开始,相应地扩展到所有传入的“sung_by”边。
我想这些查询必须返回相同的结果......但我已经在第 4 条记录中得到了不同的值。此外,如果尝试计算返回的记录总数,则前者为 148,后者为 150。
我做错了什么?提前致谢。
编辑:
我发现了问题,这很奇怪。它在“sung_by”的引号中。如果存在,请查询
select * from ( traverse in('sung_by') from #9:8 ) where type='song'
和
select expand( in('sung_by') ) from #9:8
提供完全相同的结果。
我不明白为什么它首先没有引号运行,其次我不明白选择了哪些记录。
【问题讨论】: