地理空间 2dsphere 索引未在 MongoDB Atlas 中手动创建
Geospatial 2dsphere index not creating in MongoDB Atlas and manually
我正在尝试在我的 mongodb collection 中创建一个 2sphere
索引。索引需要在 GeoJSON 格式的 location
字段上:
location: {
coordinates: [lat, long],
type: "Point"
}
我在 JS 中手动查询:
db.collection(COLLECTION_NAME).createIndex({ "location": "2dsphere" });
当我在 Mongo Atlas 中创建索引时,它在屏幕上出现并在几秒钟后消失。
创建索引时出错,但我不知道是什么。
我的$near
查询:
db.collection(COLLECTION_NAME)
.find({
location: {
$near: {
$geometry: { type: "Point", coordinates: [lng, lat] },
$minDistance: 1000,
$maxDistance: 5000,
},
},
})
错误:
planner returned error :: caused by :: unable to find index for $geoNear query
这个错误是因为我的索引没有创建。
希望那里的人能帮忙! :) 非常感谢!
使用的文档:https://www.mongodb.com/docs/manual/reference/operator/query/near/
GeoJSON 坐标是 long,lat
而不是 lat,long
。您的 location
字段中很可能有一些错误数据,这会阻止正确创建索引。如果 1000 个文档中的一个文档有错误的地理数据,则不会创建索引。要进行测试,如果可以的话,从集合中删除数据,创建 2dsphere
索引,然后循环添加数据并观察 insert
中的 return 代码。错误的 GeoJSON 数据将导致插入错误,允许您将这些项目标记为需要注意,但允许大多数插入索引支持。
我正在尝试在我的 mongodb collection 中创建一个 2sphere
索引。索引需要在 GeoJSON 格式的 location
字段上:
location: {
coordinates: [lat, long],
type: "Point"
}
我在 JS 中手动查询:
db.collection(COLLECTION_NAME).createIndex({ "location": "2dsphere" });
当我在 Mongo Atlas 中创建索引时,它在屏幕上出现并在几秒钟后消失。
创建索引时出错,但我不知道是什么。
我的$near
查询:
db.collection(COLLECTION_NAME)
.find({
location: {
$near: {
$geometry: { type: "Point", coordinates: [lng, lat] },
$minDistance: 1000,
$maxDistance: 5000,
},
},
})
错误:
planner returned error :: caused by :: unable to find index for $geoNear query
这个错误是因为我的索引没有创建。
希望那里的人能帮忙! :) 非常感谢!
使用的文档:https://www.mongodb.com/docs/manual/reference/operator/query/near/
GeoJSON 坐标是 long,lat
而不是 lat,long
。您的 location
字段中很可能有一些错误数据,这会阻止正确创建索引。如果 1000 个文档中的一个文档有错误的地理数据,则不会创建索引。要进行测试,如果可以的话,从集合中删除数据,创建 2dsphere
索引,然后循环添加数据并观察 insert
中的 return 代码。错误的 GeoJSON 数据将导致插入错误,允许您将这些项目标记为需要注意,但允许大多数插入索引支持。