gpt4 book ai didi

node.js - MongoError : can't find any special indices: 2d (needs index), 2dsphere(需要索引)$nearSphere

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

这是我的第一个问题,所以如果问得不是很好或者我的英语不好,请耐心等待我。

我正在尝试在 Node.js 中的 MongoDB 中执行地理空间查询。

这个查询工作得很好

collection.find( { loc : { $geoWithin :
{ $centerSphere :
[ [ point.coordinates[0], point.coordinates[1]] , getRadiusMeters(radius) ]
} } } )

但是当我尝试对 $nearSphere 做同样的事情时:

collection.find(  { loc :{ $nearSphere :
{ $geometry :
{ type : "Point" ,
coordinates : [ point.coordinates[0], point.coordinates[1]] } ,
$maxDistance : getRadiusMeters(radius)
} } } )

我收到以下错误:

{ [MongoError: can't find any special indices: 2d (needs index), 2dsphere (needs index),  for: { loc: { $nearSphere: { $geometry: { type: "Point", coordinates: [ 6.128777, 49.596792 ] }, $maxDistance: 10000 } } }] name: 'MongoError' }

我想我有正确的索引。这是我的索引:

> db.realtrip.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "test.realtrip",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"loc" : "2dsphere"
},
"ns" : "test.realtrip",
"name" : "loc_2dsphere"
},
{
"v" : 1,
"key" : {
"tags" : 1
},
"ns" : "test.realtrip",
"name" : "tags_1"
},
{
"v" : 1,
"key" : {
"loc" : "2d"
},
"ns" : "test.realtrip",
"name" : "loc_2d"
}
]

我找不到我做错了什么。 $centerSphere 查询工作正常,只有 $nearSphere 查询给我错误。

最佳答案

原来我的错误与这个问题有关Bugreport Mongodb

更新我的 mongodb 解决了它。现在代码按预期工作。

关于node.js - MongoError : can't find any special indices: 2d (needs index), 2dsphere(需要索引)$nearSphere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23561877/

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