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