在mongodb中转换纬度经度类型以执行地理空间查询

3

我在mongodb中有存储文档,其中包含:

{
    "Latitude" : "1.242",
    "Longitude" : "-12.311"
}

没错,它们是字符串!我该如何将它们转换为 double 类型并存储为 GeoJSON 点,即:

{
    "Coordinates" = [-12.311,1.242]  
}  

我希望能够执行类似于地理空间查询的操作。

"$and":[{"Latitude" : { "$not" : { "$within" : { "$center" : [[lat,lon]],1000] } } }},{"Longitude" : { "$not" : { "$within" : { "$center" : [[lat,lon],1000] } } }}]

一个查询如下形式:
Mongodb not $near
查找所有不在由lat lon形成的半径为1000米的圆内的点。如果可以不进行更改就完成此操作,请提供其他建议。请帮忙!


@SSDMS,没错。 - Blabber
您的文档新结构无效。您需要“保留”“纬度”和“经度”字段吗? - styvane
我基本上想执行那个查询。如果可以使用原始的“纬度”和“经度”字段,那太好了!否则,我希望将其转换为一种形式,以便我可以轻松地获取半径外的所有点。 - Blabber
如果您能帮忙就请帮帮我吧。我已经卡在这个查询上很长一段时间了! - Blabber
@SSDMS 是的! - Blabber
显示剩余5条评论
1个回答

0
db.Coll.aggregate(
           [
{$addFields:    {"coordinates" :  ["$latitude" ,"$longitude"] }     },
{$out:"coll_new"}
            ]           
            );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接