这可以按预期工作,全部"检查"在一个地方
r.table('places').eqJoin('checkinId', r.table('checkins'))
这可以按预期工作,让所有位置都接近一点。
r.table('places').getNearest(r.point(-122.1634581999,47.7542651), { index : 'places.location' })
但是这会返回一个空数组,获取一个点附近的所有位置,并加入check ins。
r.table('places').getNearest(r.point(-122.1634581999,47.7542651), { index : 'places.location' }).eqJoin('checkinId', r.table('checkins'))
我应该以不同的方式加入第二张桌子吗?
答案 0 :(得分:4)
我认为getNearest
会返回格式{distance: <number>, doc: <doc>}
的流,因此您可能需要使用checkinId
替换eqJoin
中的r.row("doc")("checkinId")
类似
r.table("places").getNearest(...).eqJoin(r.row("doc")("checkinId"), r.table("checkins"))
返回任何内容的原因是因为eqJoin
的行为类似于SQL内部联接,这意味着如果找不到匹配项,则不会返回左侧文档。