当我在heroku云服务器上使用此find命令时:
users.find({$and: [
{loc: { $nearSphere: user.loc.coordinates,
$maxDistance: user.dis / 3959}},
{age: {$gte: user.age_down}},
{age: {$lte: user.age_up}},
{gender: user.interested},
{interested: user.gender}]})
我收到can't find any special indices 2d (needs index) 2dsphere (needs index)
错误。
db.users.getIndexes()的结果(在heroku中)是:
PRIMARY> db.getIndexes()
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "app27206755.users",
"name" : "_id_"
},
{
"v" : 1,
"key" : {
"loc" : "2dsphere"
},
"ns" : "app27206755.users",
"name" : "loc_2dsphere",
"background" : true
}
]
奇怪的是,在我的本地服务器中它完美运行(完全相同的代码),但问题仅在于heroku ...我想也许我的本地机器上有更新版本的mongo。问题是我不知道如何在heroku云服务器上更新mongodb的版本,或者它是否可能?
更新 :我刚发现heroku中的mongo版本是2.4.8,而本地机器中的版本是2.6.3。 任何想法如何升级?
谢谢!