没有索引mongo查询无法排序

时间:2013-04-08 10:02:42

标签: mongodb exception indexing

我有以下查询:

{ "loc" : { "$near" : [ 32.08 , 34.779] , "$maxDistance" : 0.04499640028797696} , "isCreated" : true , "loc.venueName" :  null}

排序方式:

{"lastActiveTime":-1}

限制为100份文件。

loc - 包含密钥的嵌入式文档(lat,lon,venueName)

isCreated - boolean

lastActiveTime - 日期

我得到了例外:

  

org.springframework.data.mongodb.UncategorizedMongoDbException:没有索引的sort()数据太多。添加索引或指定较小的限制;

我尝试过各种各样的索引变化,复合而不是复合,但我仍然得到上述异常,试过......

{'loc':'2d', 'lastActiveTime':-1}

{'lastActiveTime':-1}

我需要在文档中创建哪些索引才能使查询成功?

MongoDB版本是2.0.6

这是示例文档(带有相关密钥):

{
  "_id" : "5d5085601208aa918bea3c1ede31374d",
  "gender" : "female",
  "isCreated" : true,
  "lastActiveTime" : ISODate("2013-04-08T11:30:56.615Z"),
  "loc" : {
    "lat" : 32.082230499955806,
    "lon" : 34.813542940344945,
    "locTime" : NumberLong(0)
  }
}

1 个答案:

答案 0 :(得分:0)

听起来像是没有创建索引。如果您要对lastActiveTime进行排序,那么这就是要索引的那个。

通过在mongo shell中输入以下内容,尝试正确设置索引:

use yourdbname
db.yourcollectionname.getIndexes()