我有一个我无法弄清楚的查询优化问题。它涉及geoLocation和时间。我有很多事件,都有startTime
,endTime
(已编入索引)和location
(已编入索引)。如果我想要在某个尚未发生的位置附近发生的事件,我可以采取以下两种方式之一:
getNearest()
命令(可以返回所有已过期的事件),然后过滤掉尚未发生的事件。我对这个问题的担心是,getNearest()
指定了返回的数量,但我基本上需要在给定半径内完成所有这些,所以我不会错过任何尚未发生的事件。< / LI>
我只是不确定如何才能找到最快/最有效的查询。
对我而言,最好的选择似乎是过滤并获取尚未发生的所有事件,然后使用getNearest()来获取索引的优势。但我可以调用最近的过滤集。请帮忙!?!?!
答案 0 :(得分:1)
要获取半径范围内的所有事件,建议您将getIntersecting()
与r.circle
一起使用。
这不仅比getNearest
更有效,而且对退回文件的数量也没有任何限制。
您可能需要将传递到r.circle
的半径稍大一些,以说明生成的多边形将略微小于顶点之间的指定半径。