MongoDBで”too much data for sort() with no index”て出た

3月くらいから少しずーつ作っている自作のアクセス解析サイトですが、最近あんまり手を加えていないので延々とアクセスログだけ溜まっていく日々だったのですが、ひさしぶりにログを確認してみたら

Fatal error: Uncaught exception ‘MongoCursorException’ with message ‘localhost:*****: too much data for sort() with no index. add an index or specify a smaller limit’

っていうエラーが出てました。
このエラーは「アクセス数が多めのサイト」の「1ヶ月分」の「リファラ」を見る時だけ出たのですが、どげんかせんといかんなぁとは思ってるところ。

一応、対象カラムにはインデックスをつけてるハズなんですが・・・なんで「with no index.」とか出るんでしょ?

かと言ってlimitで数を制限してしまうとアクセス解析の意味が無いし・・・。

というわけでちょっと考え中。


[追記]
find()の後にチェーンメソッドでsort()を入れてたんですが、それを外したらエラー出なくなりました。

※PHP
$result = $collection->find($conf,$field)->sort(array("date"=>-1));

$result = $collection->find($conf,$field);

・・・なんで?(´・ω・`)

また自転車壊れた(゜~゜)

自転車のペダルの部分の銀色の円盤みたいな部分の金属が千切れました。

なので、修理に出したら正規品のパーツが置いてなくて代用品のパーツでよければ無料で修理しますよーって言われてラッキーでした。

今月の運、使い果たした!