通过聚合过滤MongoDB中的数据

时间:2019-03-07 15:59:30

标签: node.js mongodb mongodb-query aggregation-framework

我的数据库中有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数据要传送到应用程序)。

0 个答案:

没有答案