gpt4 book ai didi

实现 $near 查询时出现 MongoDB 错误

转载 作者:可可西里 更新时间:2023-11-01 10:02:50 24 4
gpt4 key购买 nike

示例 MongoDB 文档

{
"_id":"5adedaad0bd4134kb0",
"url":"https://iscon.cdnalign.com/t51.288515/s640x640e35/10249200241120_2108192950_n.jpg?ig_cache_key=MTEYUTB1NDgxN",
"description":"#funinthesun",
"locationName":"Calamari",
"statusValue":1,
"reason":"Related to travel",
"category":["park"],
"geo": {
"index":"Point",
"coord":[29.123024,77.1999]
}

我想根据与特定点的距离获取文档。

这是我正在使用的查询,以便文档根据距离来。

询问
var collection = db.collection('myData');
collection.ensureIndex({"geo.index":"Point"});
collection.find({
geo :{
$near : {
$geometry : {
index : "Point" ,
coord : [30.564058, 76.44762696]
},
$maxDistance : 100
}
}
}

这向我展示了这个错误:- {"name":"MongoError","message":"geo near query $geometry argument: { index:\"Point\", coord: [ 4.27326978424058, 30.4439024447627 ] } Point 必须是数组或对象", "waitedMS":0,"ok":0,"errmsg":"geo near query $geometry argument: { index:\"Point\", coord: [ 4.27326978424058, 30.4439024447627 ] } 点必须是一个数组或对象”,“代码”:2}

最佳答案

如果您查看 $near 文档 https://docs.mongodb.com/manual/reference/operator/query/near/你会发现这里有两个问题:

  1. 您需要一个 2dsphere 类型的索引,以便对 GPS 字段进行地理空间查询
  2. 地理空间点必须具有名称坐标属性,而不是坐标

这是你的代码的正确版本,应该可以工作

var collection = db.collection('myData');
collection.ensureIndex({"geo":"2dsphere"});
collection.find({
geo :{
$near : {
$geometry : {
index : "Point" ,
coordinates : [30.564058, 76.44762696]
},
$maxDistance : 100
}
}
})

关于实现 $near 查询时出现 MongoDB 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39147277/

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