当你想获取所有数据的时候,第一想法肯定就是改skip。代码一般就张这样:
function getAll(Context, ClassRef) {
var deferred = Q.defer()
var skip = 0;
var limit = 500;
var results = [];
var query = new Context.Query(ClassRef);
query.limit(limit)
function getBunch() {
query.skip(skip)
query.find(function (items) {
_.each(items, function (item) {
results.push(item)
})
if (items.length === limit) {
skip += limit;
getBunch();
} else {
deferred.resolve(results);
}
})
}
getBunch()
return deferred.promise
}
getAll().then(function(results){
console.log(results.length)
})
但,你会惊奇的发现获得的results里居然有重复的...好吧,看来LeanCloud的默认Query是没有一个默认index的...
简单的做法就是,在query里加个排序。比如在query.limit(limit)
后面加个query.ascending('createdAt')
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。