【发布时间】:2014-08-02 00:17:20
【问题描述】:
我正在做一种房间预订系统,其中集合包含包含两个日期的文档:开始日期和结束日期。 我希望能够找到开始日期在两个日期之间且结束日期也在两个日期之间的所有预订。 我使用了 MongoDB 复合索引,因此我正在索引开始日期和结束日期字段。 但是我想知道是否可以通过使用 GEO2D 索引来提高查询性能。为此,我们可以将开始日期和结束日期转换为 unix 时间,然后每个预订都是一个位置为(开始日期,结束日期)的点。 使用 $within 运算符可以查询开始日期和结束日期范围内的预订。
由于我猜 GEO 索引更多地用于空间数据,将它们用于这个特定用例是否有意义?
最后,既然 GEO2D 索引在 MongoDB 中是作为 B-Trees 而不是作为 R-Trees 实现的,那么传统索引和这个 GEO 索引有什么区别?
【问题讨论】:
标签: mongodb geospatial b-tree-index