mongodb - $geoIntersects 按重叠百分比排序
Posted
技术标签:
【中文标题】mongodb - $geoIntersects 按重叠百分比排序【英文标题】:mongodb - $geoIntersects sorted by overlapping percentage 【发布时间】:2018-03-02 23:34:19 【问题描述】:我收藏了这类文档:
_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
的边界,在那里我得到了两个或更多文档。
Here is an example image
有没有办法可以通过重叠百分比对结果进行排序?或者任何类型的过滤器来知道哪个是确切的父母?
【问题讨论】:
【参考方案1】:我发现在 mongo 中没有办法做到这一点,我不得不用代码来做到这一点。 Here is an easy way to solve this problem
【讨论】:
以上是关于mongodb - $geoIntersects 按重叠百分比排序的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB 中正确使用 $geoIntersects?
MongoDB $geoIntersects 不返回特定城市的任何数据
mongodb - $geoIntersects 按重叠百分比排序