mongodb - $geoIntersects 按重叠百分比排序
mongodb - $geoIntersects sorted by overlapping percentage
我有一个 collection 有这种文件:
{
_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
有没有办法按重叠百分比对结果进行排序?或者任何类型的过滤器来知道哪个是准确的 parent?
我发现在 mongo 中没有办法做到这一点,我不得不用代码来做到这一点。
我有一个 collection 有这种文件:
{
_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
有没有办法按重叠百分比对结果进行排序?或者任何类型的过滤器来知道哪个是准确的 parent?
我发现在 mongo 中没有办法做到这一点,我不得不用代码来做到这一点。