Mongoengineのcountの仕様
たまにハマるので
Userは100万人いるとする
user = User.objects().limit(100)
user.count() #=> 1000000
limitとかskipと一緒に使うと予想外の結果が返って来る可能性あり
limit(100)なんだから最大でも100なんだろうと期待してコード書くとマズい
あくまでobjectsの中のクエリ結果の件数を返してる模様
100を期待したければ、
User.objects.limit(100).count(with_limit_and_skip=True)) #=>これだと100になる
ちなみにバージョン0.8以降はlen(user)だと全件見ちゃって凄く時間かかって公式に非推奨です。0.7以前なら大丈夫だけど基本はcountで、だそうです。