gpt4 book ai didi

Mongodb find 查询与 $near 和坐标不起作用

转载 作者:IT老高 更新时间:2023-10-28 13:25:14 26 4
gpt4 key购买 nike

我正在尝试使用 mongodb 中的一些地理定位功能。使用带有 $near 的查找查询似乎不起作用!

我的数据库中目前有这个对象:

{
"Username": "Deano",
"_id": {
"$oid": "533f0b722ad3a8d39b6213c3"
},
"location": {
"type": "Point",
"coordinates": [
51.50998,
-0.1337
]
}
}

我也设置了以下索引:

{
"v": 1,
"key": {
"location": "2dsphere"
},
"ns": "heroku_app23672911.catchmerequests",
"name": "location_2dsphere",
"background": true
}

当我运行这个查询时:

db.collectionname.find({ "location" : { $near : [50.0 , -0.1330] , $maxDistance : 10000 }})

我收到此错误:

error: {
"$err" : "can't parse query (2dsphere): { $near: [ 50.0, -0.133 ], $maxDistance: 10000.0 }",
"code" : 16535
}

有人知道我哪里出错了吗?任何帮助将不胜感激!

最佳答案

如果您的数据也是 GeoJSON 格式,您似乎需要使用 GeoJSON 格式,就像您的一样。如果你使用:

db.collectionname.find({
"location": {
$near: {
$geometry:
{ type: "Point", coordinates: [50.0, -0.1330] }, $maxDistance: 500
}
}
})

它应该工作。我可以使用该字段的 GeoJSON 存储格式复制您的错误,但是文档在查询表达式中称为遗留点。我认为文档有点不清楚,因为他们建议您可以使用 GeoJSON 和带有 2dsphere 索引的旧坐标 2dsphere

我正在使用 2.4.10,因为它值得,因为在 2.4 版本中对空间进行了一些重大更改。

关于Mongodb find 查询与 $near 和坐标不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22881401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com