我有一个具有地理空间索引location: {lat:XX.XXXX, lng:XX.XXXX}
的文档集合。但我希望它们按TimeZone输出。
我正在考虑将地理位置转换为时区,并基于此建立索引,但我不确定如何做到这一点,或者如果使用地理空间索引会更容易。
MongoDB可以使用$geoWithin
查询条件检查GeoJSON
中描述的任意多边形中是否包含一个点。您可以在GeoJSON
中创建具有位置多边形的时区文档的新集合。为此,请尝试这个GitHub回购。我对这个相关SO问题的回答也可能有用。
一旦您有了时区集合,您就可以预先计算时区,将其存储在文档中并为其建立索引,以便更快地查询。您需要对时区进行排序。
Sim提供的优秀答案将允许您在自己的代码中完成所有操作-但它确实需要一些开销。如果你只是想将位置解析为时区,并且不介意调用外部服务,你可以使用谷歌的时区API。
参见相关问题及其答案