$地理介绍按重叠百分比排序



我有一个带有这种文档的集合:

{
  _id: ObjectId,
  type: "string", // COUNTRY, STATE, CITY
  geometry: {
    type: "MultiPolygon",
    coordinates: <coordinates>
  }
}

我想计算COUNTRY是每个STATE。我试图这样做:

var state = db.entity.findOne({_id:ObjectId("someStateID")});
db.entity.find({
  geometry: {
    $geoIntersects: {
      $geometry: state.geometry
    }
  },
  type:"COUNTRY"
});

这很好,除了在某些情况下,某些STATE的线正在触摸邻居COUNTRY的边界,我得到了两个或更多文档。

这是一个示例图像

有没有一种方法可以通过重叠百分比对此结果进行排序?或任何类型的过滤器知道哪个是确切的父母?

我发现我无法在Mongo中这样做,我必须使用代码进行操作。这是解决此问题的简单方法

最新更新