2017-03-10 50 views
1

我有一个有关rethinkdb的问题。我正在查询获得最近的位置周围的一个特定的点,它的进展良好,但问题是,要先筛选结果,然后应用getNearest但getNearest与表 任何人都可以在这里指导我我们如何在RethinkDb中的过滤器之后使用getNearest函数?

这里是代码和它工作正常 。但我想先过滤结果,然后使用GetNearest位置。

var point = r.point(73.07328600000005,33.633473); 
r.db('DB').table('infoCenter').getNearest(point, 
    {index: 'location', unit: 'km', maxDist:1, maxResults: 2000} 
    ) 
.filter(function(kk) { 
    return kk('doc')('Deleted').default(false).eq(false) 

    }) 

上面的代码工作正常但我想要做的是先筛选结果,然后使用getNearest方法。 getNearest方法仅适用于表格。

由于事先

回答

1

索引操作,诸如getNearest不能在filter之后进行。

你也可以使用一个没有索引的orderBydistance,例如:

.orderBy(ic => ic('location').distance(point)) 

或者,如果你想保持unitmaxDistmaxResults,是这样的:

.merge(ic => {distance: ic('location').distance(point, {unit: 'km'})}) 
.filter(ic => ic('distance').lt(1)) 
.orderBy('distance') 
.limit(2000) 
相关问题