我确信必须有办法做到这一点,但在mongo上相当新,我找到正确的方法是非常令人费解的。
假设我们的数据库中有一个具有以下布局的文档:
{
location:{
type:"Polygon",
coordinates: [
[
[-180,-90],
[-90, -90],
[-90, -45],
[-180,-45],
[-180,-90]
]
]
}
inner_locations:[
{ type:"Polygon",
coordinates:"--polygon fully contained in the location polygon--"
}
{ type:"Polygon",
coordinates:"--polygon fully contained in the location polygon--"
}
{ type:"Polygon",
coordinates:"--polygon fully contained in the location polygon--"
}
]
为了论证,我们假设该位置标记了地图上的邻域,而inner_locations是其中的建筑物。 现在让我们假设我有一个多边形,我想找到与它相交的所有文件(邻域)。任务很简单:我跟你一起去:
db.name.find({location:
{$geointersect:
{$geometry:
{ "type":"Polygon",
"coordinates": [[...]]
}
}
}
})
现在让我们想进一步想知道邻域的各个建筑物如何与那个多边形相交,我怎么能这样做? 查询的结果是一个对象数组,所以我想也许有一种方法可以使用输出数组作为输入将第一个查询传递给第二个查询?或pheraps有一种方法在第一个查询的投影文档上使用类似的查询来获得想要的结果?任何帮助将非常感谢这个mongo用户:)