将它与Grails和mongo db插件一起使用。
这是我正在使用的代码......不知道为什么但是光标返回整个数据集。在这种情况下,我只是想尝试返回前20个匹配项(is_processed = false):
def limit = {
def count = 1;
def shape_cursor = mongo.shapes.find(new BasicDBObject("is_processed", false),new BasicDBObject(),0,20);
while(shape_cursor.hasNext()){
shape_cursor.next();
render "<div>" + count + "</div"
count++;
}
}
有人有想法吗?
答案 0 :(得分:5)
答案 1 :(得分:3)
根据JavaDoc,您链接到第二个int参数不是要返回的最大数,而是
batchSize - 如果是肯定的,则是从db发回的每批次的对象数。将返回匹配的所有对象。 if batchSize&lt; 0,它是一个硬限制,只有1批次将是batchSize或适合批次的#
也许负数(-20)会做你想要的,但是我发现上面的陈述太混乱而无法确定它,所以我将batchSize设置为20然后过滤你的应用程序代码。
可能将此文件作为错误/功能请求提交。应该有一种方法来指定跳过/限制,就像在shell接口上一样。 (更新:并且在光标类上有另一个答案)。