2014-01-17 67 views
1

我有這個疑問蒙戈Java驅動程序不服從極限法

DBCursor mongoCursor = mongoCollection.find(query).sort(sort).limit(5000); 
long mongoCursorCount = mongoCursor.count(); 
myLogger.info("mongoCursorCount " + mongoCursorCount); 

這正顯示出1.2M文檔

的限制方法的工作殼查詢一個mongoCursorCount值,但它通過mongo-工作java-driver-2.1.1.jar驅動程序?

回答

2

默認情況下,MongoDB在與count一起應用時,會忽略limitskip。要更改此行爲,您需要將applySkipLimit設置爲true。有關更多詳細信息,請參閱here

在蒙戈外殼,這將忽略默認limitskip

db.coll.find().limit(3).count(); 

,這將尊重這些修飾語:

db.coll.find().limit(3).count(true); 

這可能是可能的,你使用的是舊版本的Mongo shell在哪裏這不是默認或類似的東西。

要修復您的Java代碼,請使用size()而不是count() - 這就像在shell中調用count(true)而不是count()