インデックス付けされているかどうかに関係なく、カウントクエリは、MongoDBが条件に一致する適切な数のドキュメントを見つけるために完全なBツリーウォークを実行する必要があるため、低速です。これは、MongoDBのbツリー構造が「カウント」されないためです。つまり、各ノードはノード/サブツリー内の要素の量に関する情報を格納しません。
この問題はここで報告されます
また、db.col.count()バージョン(基準がないため)は大きなショートカットを使用でき、実際にはクエリを実行しないため、速度が速いことに注意してください。とはいえ、すべての要素を返す必要があるカウントクエリと同じ値を常に報告するとは限りません(たとえば、書き込みスループットが高いシャード環境にはありません)。それがバグかどうかは議論の余地があります。そうだと思います。
2.3以降では、インデックス付きフィールドのカウントのパフォーマンスを改善する必要がある(そして改善する)重要な最適化が導入されたことに注意してください。参照: https://jira.mongodb.org/browse/SERVER-7745