Per impostazione predefinita MongoDB ignora limit e skip quando vengono applicati insieme a count . Per modificare questo comportamento devi impostare applySkipLimit su true . Vedi qui
per maggiori dettagli.
Nella shell Mongo questo ignorerà il limit e skip per impostazione predefinita:
db.coll.find().limit(3).count();
E questo rispetterà quei modificatori:
db.coll.find().limit(3).count(true);
Potrebbe essere possibile che tu stia utilizzando una versione precedente di Mongo shell in cui questo non è predefinito o qualcosa del genere.
Per correggere il tuo codice Java usa size() invece di count() - è come chiamare count(true) invece di count() in guscio.