0

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

有没有一种方法可以让我忽略从一个查询中的过滤列表中获取最接近的结果?

4

1 回答 1

1

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

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

像这样的东西会起作用:

r.db('db').table('table')
  .filter(function_to_filter)
  .orderBy(function(doc) {
    return r.distance('your_point_to_compare', doc('point'))
  })
于 2015-09-22T16:34:32.877 回答