Mongo Java驱动程序不遵守限制方法

kur*_*ele 3 java mongodb

我有这个问题

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

这显示mongoCursorCount值为1.2M docs

limit方法适用于shell查询,但是它是通过mongo-java-driver-2.1.1.jar驱动程序工作的吗?

yǝs*_*ǝla 5

默认情况下,MongoDB的忽略limitskip当他们与一起应用count.要更改此行为,您需要设置applySkipLimittrue.有关详细信息,请参见此处

在蒙戈外壳,这将忽略limit,并skip默认为:

db.coll.find().limit(3).count();
Run Code Online (Sandbox Code Playgroud)

这将尊重这些修饰符:

db.coll.find().limit(3).count(true);
Run Code Online (Sandbox Code Playgroud)

您可能正在使用旧版本的Mongo shell,这不是默认版本或类似的东西.

要修复Java代码size()而不是count()- 这就像调用count(true)而不是count()shell.