目前,Rethink API documentation表示get_nearest命令仅适用于表。当然我可以在之后过滤结果,但这似乎效率低下,而且当我想将结果限制为特定数量的项目时,需要按距离排序所有项目。
我是否有办法忽略在一个查询中从过滤列表中获得最接近的结果?
答案 0 :(得分:1)
它仅适用于表的原因是强制索引。索引仅适用于表级别。稍微考虑一下,这是有道理的,因为它是一个昂贵的查询。
但是,如果您有过滤列表,那么您可以做的最好的事情就是使用distance
并按其结果排序。
这样的事情会起作用:
r.db('db').table('table')
.filter(function_to_filter)
.orderBy(function(doc) {
return r.distance('your_point_to_compare', doc('point'))
})