По подразбиране MongoDB игнорира limit и skip когато се прилагат заедно с count . За да промените това поведение, трябва да зададете applySkipLimit на true . Вижте тук
за повече подробности.
В Mongo shell това ще игнорира limit и skip по подразбиране:
db.coll.find().limit(3).count();
И това ще зачита тези модификатори:
db.coll.find().limit(3).count(true);
Възможно е да използвате по-стара версия на Mongo shell, където това не е по подразбиране или нещо подобно.
За да коригирате вашия Java код, използвайте size() вместо count() - това е като извикване на count(true) вместо count() в черупка.