如何在嵌入式文档数组上使用$ geoNear?

梅利斯

我的文档结构如下:

{ agency_key : '',
  route_id: '',
  direction_id: '',
  stops: [ 
           {stop_id:15, 
            stop_lat: '',
            stop_lon: '',
            loc: [-83.118972, 42, 121567]
            },
            {...
            }
          ]
}

我想找到距离集合中每个文档都在给定距离内的给定(纬度,经度)对附近的停靠点。我创建了二维索引。我尝试了$ unwind,然后尝试了$ geoNear,但是它说$ geoNear只能在管道的第一阶段。我尝试了这个:

db.tm_stops.aggregate([ 
... { 
...  $geoNear: { near: {coordinates: [-82.958841, 42.370114] },      distanceField: "stops.calculated", query: { agency_key: "DDOT"}, 
... includeLocs: "stops.loc" }
... }
... ])

我尝试了以下方法:

 db.tm_stops.find({stops:{$near:[-82.958841, 42.370114], $maxDistance: 1 } } )

它引发此错误:

error: {
    "$err" : "Unable to execute query: error processing query: ns=gtfs.tm_stops limit=0 skip=0\nTree: GEONEAR  field=stops maxdist=1 isNearSphere=0\nSort: {}\nProj: {}\n planner returned error: unable to find index for $geoNear query",
    "code" : 17007

我的mongo查询应该是什么?我将需要从Node.js应用程序中执行此操作,但我想首先在Mongo Shell中看到一些结果。提前致谢。

梅利斯

我终于使查询工作。我正在回答自己的问题,以供将来参考。由于我使用的是2d索引而不是2dsphere,因此我不必coordinates在Near运算符中使用该查询有效:

db.tm_stops.aggregate([ 
 { 
  $geoNear: 
    { near: [-82.958841, 42.370114] ,     
     distanceField: "stops.calculated", 
     query: { agency_key: "DDOT"}, 
     includeLocs: "stops.loc" }
     }
   ])

但是我发现,在返回的文档中,我只能看到计算出的距离以及用于计算距离的(纬度,经度)对。我真的无法返回用于计算的整个嵌入式文档。

如果我找到返回整个嵌入式文档的方法,则将更新答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将$ geoNear与嵌入式GeoJsonPoint字段一起使用?

来自分类Dev

$lookup 后如何使用 $geoNear

来自分类Dev

$ geoNear(聚合管道)未返回正确的文档

来自分类Dev

通过geoNear获取子文档-MongoDB

来自分类Dev

我如何在$ geoNear之后填充子文档

来自分类Dev

MongoDB / Mongoose-包含geoNear和子文档的聚合

来自分类Dev

Spring-MongoDB geonear无法使用其他字段

来自分类Dev

如何在嵌入式数组mongodb中查询嵌入式文档

来自分类Dev

如何在MongoDB中使用数组获取嵌入式文档(使用Mongoose)

来自分类Dev

$ geoNear用于列表嵌入位置以及列表中所有位置的返回距离

来自分类Dev

如何使用$ geoNear沿结果返回距离以得到两个不同的子值

来自分类Dev

在MongoDB中使用Python Eve在geonear聚合器中使用变量

来自分类Dev

在geonear中设置minDistance

来自分类Dev

如何在Mongoose的嵌入式文档中检索数组的最后一个对象?

来自分类Dev

如何在MongoDB中查询数组中的单个嵌入式文档?

来自分类Dev

与数组比较,如何在mongodb中检索部分嵌入式文档?

来自分类Dev

在文档中引用文档的嵌入式数组的嵌入式数组上查询Doctrine2和MongoDB

来自分类Dev

猫鼬:如何更新子嵌入式文档数组?

来自分类Dev

使用Presto查询MongoDB嵌入式/嵌套文档的数组

来自分类Dev

如何在OrientDB中插入嵌入式文档

来自分类Dev

如何在Meteor中循环浏览嵌入式文档

来自分类Dev

如何在 MongoDb 中查询嵌入式文档?

来自分类Dev

如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

来自分类Dev

如何在mongodb中使用node.js删除嵌入式(嵌套)文档

来自分类Dev

如何在mongoDB中的多对多关系中使用嵌入式文档结构?

来自分类Dev

春季查询嵌入式文档的数组

来自分类Dev

如何使用Mongoengine删除嵌入式文档?

来自分类Dev

Mongodb geoNear和组聚合

来自分类Dev

GraphQL 和 MongoDB `$geoNear` 聚合

Related 相关文章

  1. 1

    如何将$ geoNear与嵌入式GeoJsonPoint字段一起使用?

  2. 2

    $lookup 后如何使用 $geoNear

  3. 3

    $ geoNear(聚合管道)未返回正确的文档

  4. 4

    通过geoNear获取子文档-MongoDB

  5. 5

    我如何在$ geoNear之后填充子文档

  6. 6

    MongoDB / Mongoose-包含geoNear和子文档的聚合

  7. 7

    Spring-MongoDB geonear无法使用其他字段

  8. 8

    如何在嵌入式数组mongodb中查询嵌入式文档

  9. 9

    如何在MongoDB中使用数组获取嵌入式文档(使用Mongoose)

  10. 10

    $ geoNear用于列表嵌入位置以及列表中所有位置的返回距离

  11. 11

    如何使用$ geoNear沿结果返回距离以得到两个不同的子值

  12. 12

    在MongoDB中使用Python Eve在geonear聚合器中使用变量

  13. 13

    在geonear中设置minDistance

  14. 14

    如何在Mongoose的嵌入式文档中检索数组的最后一个对象?

  15. 15

    如何在MongoDB中查询数组中的单个嵌入式文档?

  16. 16

    与数组比较,如何在mongodb中检索部分嵌入式文档?

  17. 17

    在文档中引用文档的嵌入式数组的嵌入式数组上查询Doctrine2和MongoDB

  18. 18

    猫鼬:如何更新子嵌入式文档数组?

  19. 19

    使用Presto查询MongoDB嵌入式/嵌套文档的数组

  20. 20

    如何在OrientDB中插入嵌入式文档

  21. 21

    如何在Meteor中循环浏览嵌入式文档

  22. 22

    如何在 MongoDb 中查询嵌入式文档?

  23. 23

    如何使用Mongoose将值推入MongoDB中嵌入式文档中的数组?

  24. 24

    如何在mongodb中使用node.js删除嵌入式(嵌套)文档

  25. 25

    如何在mongoDB中的多对多关系中使用嵌入式文档结构?

  26. 26

    春季查询嵌入式文档的数组

  27. 27

    如何使用Mongoengine删除嵌入式文档?

  28. 28

    Mongodb geoNear和组聚合

  29. 29

    GraphQL 和 MongoDB `$geoNear` 聚合

热门标签

归档