Mongodb聚合查询以计算2点之间的距离

时间:2019-02-26 11:59:13

标签: mongodb geolocation aggregation-framework

我是mongodb的新手。我需要计算到上一个地址到同一位置的下一个地址之间的距离并添加结果,但是由于previous-addressnext-address不是,因此我需要在计算距离之前过滤文档实际上是文档的一部分,我需要根据某些条件动态添加它们。 我有看起来像这样的文件:

{
"user_id" : 2274,
"preparation_time" : 86400000,
"prev_booking" : null,
"next_booking" : {
    "id" : 1310905,
    "location" : {
        "type" : "Point",
        "coordinates" : [ 
            55.2353495, 
            25.1627054
        ]
    }
}

因此,我需要添加上一个地址和下一个地址,并且值将取决于其他条件下的prev-bookingnext-booking,然后将使用这些值来计算距离。但是问题是$geoNear必须处于管道的第一阶段,但就我而言,这是不可能的,这里有什么建议吗?

1 个答案:

答案 0 :(得分:0)

MongoDB支持2d索引和地理空间查询。请先检查2d Indexes,以了解如何正确构造索引。

之后,您可以通过查询在二维平面上计算Euclidian distance

在未来的发展中致以诚挚的问候和良好的祝愿