我有一个 MongoDB
collection A
有几百个这样的文档:
{
"_id" : ObjectId("6439bfc481c8ad39798d1009"),
"citi_id" : "place_qedaw2132",
"geometry" : {
"type" : "Point",
"coordinates" : [
-79.8922549,
34.0013755
]
},
"record_timestamp" : "2013-03-06T12:41:48-05:00"
}
我有另一个 MongoDB
collection B
有 1 个这样的文档,其中 polygon_coord
包含一个大小为 302 个元素的数组:
{
"_id" : null,
"polygon_coord" : [
[
-79.8895483,
34.0467802
],
[
-79.9060312,
34.0183378
],
.......300 more elements
]
}
我的目标是找到
collection A
的所有文档(城市),这些文档(城市)在 polygon_coord
中的 collection B
的多边形坐标内。
我试过以下方法: 我手动复制了 302 个元素的数组,并创建了一个这样的查询:
db.getCollection("collection_A").find(
{
geometry: {
$geoWithin: { $polygon: [
[
-79.8895483,
34.0467802
],
[
-79.9060312,
34.0183378
],
.......300 more elements
] }
}
}
)
成功了!它给了我正确的结果。但是,这是手动的。我研究了很多,发现我必须使用 $lookup 运算符,但无论我尝试什么,我都无法形成任何查询。请帮忙。