MongoDB 源和目标空间查询

标签 mongodb spatial-index

我有一个集合,名称为事件:

事件集合中的每个文档都有经纬度单位的源和目的地。

我想对事件集合进行查询,并仅获取距源一定距离内和距目的地一定距离内的那些事件。

我了解到 MongoDB 不支持一个集合上的两个地理空间索引。

我很困惑我的数据模型应该是什么样子以及如何进行查询来实现我的目的?

谢谢

最佳答案

您必须遵守地理索引限制,因此您有几个选择。一种是创建两个集合并运行两个查询,并在应用程序级别解析交集。这可能会很昂贵,具体取决于您正在做什么。

另一种情况是使用一个集合,但更改查询以检查某些几何图形中的 $geo,该几何图形表示源和目标周围区域的交叉区域。由于您正在查询距源和目的地一定距离内的事件,这意味着存在交叉区域。由您来计算相交几何形状。如果可能,您可以预先计算并存储这些交集。

关于MongoDB 源和目标空间查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283168/

相关文章:

mysql MBRWithin() 具有多个点

hadoop - SpatialHadoop:无法扩展多个计算节点

mongodb - $ in不使用mongodb比较golang中的所有值

MYSQL 使用空间索引

mongodb - 限制 MongoDB 中的结果但​​仍然获得完整计数?

javascript - 如何在mongodb中计算总和

mysql-workbench - 如何将空间数据导入 mysql 8 (Mysql WorkBench 8.0)

mysql - 什么是空间索引,我应该什么时候使用它?

java - 如何使用 java 在 mongodb 中按字段对文档进行分组并计算计数

json - Express.js - Mongo 对象返回未定义