2015-09-17 26 views
1

以下查询返回所有我的用户。我希望能够批量生产。Mongoose/MongoDB batchSize(30)仍然返回所有结果

statics.findAllUsers = function findAllUsers(callback) { 
    this.find({}, callback).batchSize(30); 
}; 
+0

你有没有尝试过'find'放置'batchSize'?像这样:'this.batchSize(30).find({},callback);'。让我知道这是否有效。 –

+0

试过,但得到了意想不到的errorObject函数模型(doc,fields,skipId){if(!(this instanceof model)) return new model(doc,fields,skipId); Model.call(this,doc,fields,skipId); }没有方法'batchSize' – user3554072

+0

你确定你不想[限制(30)'](http://mongoosejs.com/docs/api.html#query_Query-limit)代替吗? – JohnnyHK

回答

2

batchSize()指示驱动器能够获取一定数量的单位时间的项目。它仍然会从数据库中获取所有内容,但一次只能获得一批。

为了更清楚:如果您使用batchSize(30)那么它会要求30个项目,然后,当您需要第31个时,它会查询下一个30等等。

如果您只需要该数量的项目,然后用limit()(和offset()设置这是第一项)

文档:http://docs.mongodb.org/manual/reference/method/cursor.batchSize/