Ruby -按时区排序MongoDB记录



我有一个具有地理空间索引location: {lat:XX.XXXX, lng:XX.XXXX}的文档集合。但我希望它们按TimeZone输出。

我正在考虑将地理位置转换为时区,并基于此建立索引,但我不确定如何做到这一点,或者如果使用地理空间索引会更容易。

MongoDB可以使用$geoWithin查询条件检查GeoJSON中描述的任意多边形中是否包含一个点。您可以在GeoJSON中创建具有位置多边形的时区文档的新集合。为此,请尝试这个GitHub回购。我对这个相关SO问题的回答也可能有用。

一旦您有了时区集合,您就可以预先计算时区,将其存储在文档中并为其建立索引,以便更快地查询。您需要对时区进行排序。

Sim提供的优秀答案将允许您在自己的代码中完成所有操作-但它确实需要一些开销。如果你只是想将位置解析为时区,并且不介意调用外部服务,你可以使用谷歌的时区API。

参见相关问题及其答案

相关内容

  • 没有找到相关文章

最新更新