Por defecto MongoDB ignora limit y skip cuando se aplican junto con count . Para cambiar este comportamiento, debe configurar applySkipLimit a true . Ver aquí
para más detalles.
En el shell de Mongo, esto ignorará el limit y skip por defecto:
db.coll.find().limit(3).count();
Y esto respetará esos modificadores:
db.coll.find().limit(3).count(true);
Es posible que esté utilizando una versión anterior del shell de Mongo donde esto no es predeterminado o algo así.
Para arreglar su código Java use size() en lugar de count() - eso es como llamar a count(true) en lugar de count() en concha.