当前位置: 首页 > 知识库问答 >
问题:

未从$geoNear聚合中获取结果

马银龙
2023-03-14

你能帮我弄清楚为什么这个查询不返回结果吗?

我使用ogr2ogr导入了一个形状文件将其转换为GeoJson,然后使用以下命令将其导入到Mongo:“mongoimport--db ht--集合设施

下面是一个示例文档,以及未返回任何内容的查询和索引:

    db.epa_facilities.aggregate([
   {
    $geoNear: {
    near: { type: "Point", coordinates: [ -74.501340, 39.944520 ] },
    distanceField: "dist.calculated",
    maxDistance: 3,
    query: { type: "public" },
    includeLocs: "dist.location",
    spherical: true,
    distanceMultiplier: 3959
 }
}
])

以下是文档(为简洁起见删除了属性):

    {
"_id" : ObjectId("54ff20a90e46de508d1dae93"),
"type" : "Feature",
"properties" : {
 …    },
"geometry" : {
    "type" : "Point",
    "coordinates" : [ 
        -74.50134, 
        39.9445200009289
    ]
}

}

这是索引。我尝试了“geometry”和“geometry.coordinates”,结果相同:

    {
"geometry.coordinates" : "2dsphere"

}

共有1个答案

呼延高超
2023-03-14

执行geoNear时,除了位置过滤器外,还将应用查询过滤器。您的查询过滤器是{type:“public”}如果满足$geoNear的文档都不是“public”类型,那么您将不会得到任何文档。

 类似资料:
  • 我使用聚合从嵌套字段收集数据并卡住了一点 文件示例: ES允许通过rectangle.attributes._id来分组数据,但是有没有办法让一些“其他”桶把没有添加到任何组中的文档放在那里?或者,也许有一种方法可以通过创建查询来为文档创建桶。我认为桶将是完美的,因为我需要使用“其他”文档进行进一步的聚合。或者也许有一些很酷的解决方法 我使用这样的查询进行聚合 然后得到这个结果 这样的结果将是完美

  • 我必须在弹性搜索中使用聚合执行搜索。因为刻面将在不久的将来被删除,所以我不能使用刻面。 当然,我被鼓励使用聚合。 下面的代码给了我想要的输出: 聚合聚合=elasticsearch chTemplate.query(搜索查询,新的结果提取器(){@覆盖公共聚合提取(搜索响应响应){返回response.get聚合(); 但问题是,它成为了我的弹性搜索查询之外的第二个查询,这使得它变得非常慢。 我正

  • 问题内容: 我有一个汇总函数,按(colA)进行分组。它从一组列(列B)中选择最大值,但我也想从同一行中的列(列C)中返回另一个值。但是,如果将3行分组,则从C列中选择第一个值,而不是最大值(MAX(colB))的列。 问题答案: 您将要使用一个子查询,该子查询将按每个子查询获取,然后将该值重新连接到表中,以返回与该子查询的值匹配的其余列: 参见带有演示的SQL Fiddle

  • 我有一个数据库,里面有澳大利亚800家不同的酒吧、俱乐部和餐馆。 我想为我的网站建立一个链接列表,统计不同郊区和主要类别的不同场馆的数量。 像这样: 餐厅,伯恩山(15家) 餐厅,道斯角(6家) 俱乐部,悉尼(138家) 我可以通过首先获得所有场馆来艰难地完成这项任务。然后运行一个场地。distinct('details.location.Suburban')获得所有独特的郊区。 从这里,我可以运

  • 我来自SQL世界,从MongoDB开始,我仍然有点困惑。。。我有一个这样的收藏 还有我的问题, 我正在使用角和NodejS Express从数据库中获取数据,我以这种格式获取数据 因此,我想知道是否有一种方法可以在没有id键的情况下获得此查询结果, 像这样:

  • 我想知道如何在Elasticsearch中使用聚合时获得具有最高doc_count的存储桶。我正在使用Kibana示例数据kibana_sample_data_flights: 如果有一个存储桶具有最大文档计数,我可以将术语聚合的大小设置为1,但是如果有两个存储桶具有相同的最大文档计数,则这不起作用。 自从我涉足管道聚合以来,我觉得应该有一种简单的方法来实现这一点。最大桶聚合似乎能够处理多个最大桶