我的数据库中有2个集合,一个集合具有固定值,geoJson值以将项目过滤到特定区域(MultiPolygon),而另一个集合具有包含geoJson位置的项(点)。我知道如何过滤数据,它将是这样的:
[{$match:
{'location.coordinates':
{$geoWithin:
{'$geometry': $$resultFromAnotherQuery}
}
}
}]
此$$resultFromAnotherQuery
已被格式化,我只需要知道如何从另一个查询(或聚合的一部分)中抢救数据以用于此部分。
我设法在nodeJs上做到了这一点,而没有聚合(在地理位置数据库中查询一次,检索结果,并使用此数据构建另一个查询,再次发送所有geoJson,只是为了检索该区域内的某些项目)。
在普通过滤器上,看起来像这样:
{
"location.coordinates": {
"$geoWithin": {
"$geometry": {
"type" : "MultiPolygon",
"coordinates" : [ "tons of data, thats already on the database,
but in another collection" ]
}
}
}
}
出于性能原因,我正在尝试执行此操作(有很多geoJson数据要传送到应用程序)。