我有一组带有地理空间索引的文档location: {lat:XX.XXXX, lng:XX.XXXX}
。但我希望它们由 TimeZone 输出。
我正在考虑将地理位置转换为时区,并有一个基于此的索引,但我也不知道该怎么做,或者无论如何使用地理空间索引是否会更容易。
我有一组带有地理空间索引的文档location: {lat:XX.XXXX, lng:XX.XXXX}
。但我希望它们由 TimeZone 输出。
我正在考虑将地理位置转换为时区,并有一个基于此的索引,但我也不知道该怎么做,或者无论如何使用地理空间索引是否会更容易。
MongoDB 可以检查是否包含在GeoJSON
使用$geoWithin
查询条件中描述的任意多边形中的点。您可以创建一个新的时区文档集合,它们的位置多边形位于GeoJSON
. 为此,请尝试此 GitHub 存储库。我对这个相关的 SO 问题的回答也可能很有用。
获得时区集合后,您可以预先计算 TZ,将其存储在文档中并为其编制索引以加快查询速度。您需要提出时区的排序。与 UTC 的偏移量可能是一个很好的起点。
Sim 提供的出色答案将让您在自己的代码中完成所有这些工作 - 但它确实需要一些开销。如果您只想将位置解析为时区,并且不介意调用外部服务,您可以使用Google 的 Time Zone API。
另请参阅此相关问题及其答案。