Parse platform 使用array include解析查询并不总是返回每个数组对象

Parse platform 使用array include解析查询并不总是返回每个数组对象,parse-platform,Parse Platform,我在使用Parse.Query.find()时遇到了一些奇怪的行为,希望有人能告诉我我的错误。我的场景是,我在查询中包含一个数组字段,有时,在随机记录中,包含的一些数组元素为null。我已经验证了数组元素确实不是空的。此外,如果我使用each()而不是find(),我看不出这个问题。此外,如果我将每次读取的记录(CHUNK#u大小)从Parse的最大1000个减少到500个,事情就会正常进行,所以我不确定发生了什么 这是我正在使用的代码 /** Iterates over a query us

我在使用Parse.Query.find()时遇到了一些奇怪的行为,希望有人能告诉我我的错误。我的场景是,我在查询中包含一个数组字段,有时,在随机记录中,包含的一些数组元素为null。我已经验证了数组元素确实不是空的。此外,如果我使用each()而不是find(),我看不出这个问题。此外,如果我将每次读取的记录(CHUNK#u大小)从Parse的最大1000个减少到500个,事情就会正常进行,所以我不确定发生了什么

这是我正在使用的代码

/**
 Iterates over a query using find(), which is very fast, compared to each().
 Works up to 10,000 records maximum.

 @param query  Parse.Query to iterate.
 @param callback  Called for each batch of records.

 @return  Promise, fulfilled when iteration is done.
 */
function findAll(query, callback) {
    var queryCount = 0;
    var startTime = new Date();
    var CHUNK_SIZE=1000;
    query.limit(CHUNK_SIZE);

    var queryFind = function() {
        query.skip(CHUNK_SIZE * queryCount);
        queryCount++;

        return query.find().then(function(rows) {
            callback(rows);

            if (rows.length == CHUNK_SIZE) {
                return queryFind();
            }
        });
    }

    return queryFind();
}

// Example of how to use findAll. 
function fetchTree() {
    var records = 0;
    var query = new Parse.Query('TreeNode');
    query.include('scores');

    return findAll(query, function(nodes) {
        nodes.forEach(function(node) {
            records++;
            node.get('scores').forEach(function(score, scoreIndex) {
                if (!score) {
                    throw "Null score at row " + node.id + "/" + records + " index " + scoreIndex;
                }
            });
        });
    }, true);
}

fetchTree();

提前感谢。

解析将每个查询返回的行数限制为默认值50,最大值为1000

此限制包括相关记录,因此如果您得到10条记录,每条记录的数组中平均有50个指针,并且您
include()
这些记录,那么您的查询最多使用500/1000条记录