有没有办法在RethinkDB中查询过滤器上最近的位置?

时间:2015-09-22 12:35:22

标签: database api rethinkdb rethinkdb-ruby

目前,Rethink API documentation表示get_nearest命令仅适用于表。当然我可以在之后过滤结果,但这似乎效率低下,而且当我想将结果限制为特定数量的项目时,需要按距离排序所有项目。

我是否有办法忽略在一个查询中从过滤列表中获得最接近的结果?

1 个答案:

答案 0 :(得分:1)

它仅适用于表的原因是强制索引。索引仅适用于表级别。稍微考虑一下,这是有道理的,因为它是一个昂贵的查询。

但是,如果您有过滤列表,那么您可以做的最好的事情就是使用distance并按其结果排序。

这样的事情会起作用:

r.db('db').table('table')
  .filter(function_to_filter)
  .orderBy(function(doc) {
    return r.distance('your_point_to_compare', doc('point'))
  })