Por padrão, o MongoDB ignora
limit e skip quando são aplicados junto com count . Para alterar esse comportamento, você precisa definir applySkipLimit para true . Veja aqui
para mais detalhes. No shell do Mongo, isso ignorará o
limit e skip por padrão:db.coll.find().limit(3).count();
E isso respeitará esses modificadores:
db.coll.find().limit(3).count(true);
Pode ser possível que você esteja usando uma versão mais antiga do shell Mongo, onde isso não é padrão ou algo assim.
Para corrigir seu código Java, use
size() em vez de count() - é como chamar count(true) em vez de count() em casca.