如何构建高效的 GeoLocation 和 Time 查询
How to structure an efficient GeoLocation and Time query
嘿反思者!
我有一个查询优化问题,我不太明白。它处理地理位置和时间。我有很多事件,它们都有 startTime
、endTime
(索引)和 location
(索引)。如果我想获取某个位置附近正在发生但尚未发生的事件,我可以采用以下两种方式之一:
- 我可以根据结束时间获取并过滤所有尚未发生的事件,然后计算所有这些事件的位置,并且只计算 return 具有指定半径的事件。
- 我可以使用
getNearest()
命令(这会 return 所有过期事件)然后过滤掉尚未发生的事件。我对这个方法的一个担心是 getNearest()
指定了多少到 return,但我基本上需要所有这些都在给定的半径内,所以我不会错过任何尚未发生的事件。
我只是不确定如何找到 fastest/most 有效的查询。
对我来说最好的选择似乎是过滤并获取所有尚未发生的事件,然后使用 getNearest() 来利用索引。但是我可以在过滤后的集合上调用最近的获取。请帮忙!?!?!
为了获取半径内的所有事件,我建议使用 getIntersecting()
和 r.circle
。
不仅比getNearest
效率更高,而且对返回文档数没有任何限制
您可能需要将传入 r.circle
的半径稍大一些,以说明生成的多边形将略小于顶点之间的指定半径。
嘿反思者!
我有一个查询优化问题,我不太明白。它处理地理位置和时间。我有很多事件,它们都有 startTime
、endTime
(索引)和 location
(索引)。如果我想获取某个位置附近正在发生但尚未发生的事件,我可以采用以下两种方式之一:
- 我可以根据结束时间获取并过滤所有尚未发生的事件,然后计算所有这些事件的位置,并且只计算 return 具有指定半径的事件。
- 我可以使用
getNearest()
命令(这会 return 所有过期事件)然后过滤掉尚未发生的事件。我对这个方法的一个担心是getNearest()
指定了多少到 return,但我基本上需要所有这些都在给定的半径内,所以我不会错过任何尚未发生的事件。
我只是不确定如何找到 fastest/most 有效的查询。
对我来说最好的选择似乎是过滤并获取所有尚未发生的事件,然后使用 getNearest() 来利用索引。但是我可以在过滤后的集合上调用最近的获取。请帮忙!?!?!
为了获取半径内的所有事件,我建议使用 getIntersecting()
和 r.circle
。
不仅比getNearest
效率更高,而且对返回文档数没有任何限制
您可能需要将传入 r.circle
的半径稍大一些,以说明生成的多边形将略小于顶点之间的指定半径。