Ich habe eine Sammlung mit dieser Art von Dokumenten:
{
_id: ObjectId,
type: "string", // COUNTRY, STATE, CITY
geometry: {
type: "MultiPolygon",
coordinates: <coordinates>
}
}
Und ich möchte, zum Beispiel berechnen, in dem COUNTRY
jeder STATE
ist. Ich habe versucht, dies zu tun:
var state = db.entity.findOne({_id:ObjectId("someStateID")});
db.entity.find({
geometry: {
$geoIntersects: {
$geometry: state.geometry
}
},
type:"COUNTRY"
});
Und das funktioniert ganz gut, excepts in einigen Fällen, in denen die Leitung einiger STATE
ist die Grenze eines Nachbarn zu berühren COUNTRY
wo ich zwei oder mehr Dokumente.
Gibt es eine Weise, die ich dieses Ergebnis durch überlappende Prozentsatz sortieren? Oder irgendeine Art von Filter, um zu wissen, welches das genaue Elternteil ist?