我有一个与rethinkdb有关的问题。我正在查询获取特定点附近的最近位置并且它正常但问题是要先过滤结果然后应用getNearest但getNearest与表一起工作 任何人都可以在这里指导我
这是代码,它工作正常。但我想首先使用过滤后的结果,然后使用GetNearest Location。
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方法仅适用于表。
提前致谢
答案 0 :(得分:1)
getNearest
之后无法执行filter
等索引操作。
您可以使用带orderBy
的无索引distance
,例如:
.orderBy(ic => ic('location').distance(point))
或者,如果您想保留unit
,maxDist
和maxResults
,请执行以下操作:
.merge(ic => {distance: ic('location').distance(point, {unit: 'km'})})
.filter(ic => ic('distance').lt(1))
.orderBy('distance')
.limit(2000)