Parse platform 将解析类导入algolia

Parse platform 将解析类导入algolia,parse-platform,algolia,Parse Platform,Algolia,我正在尝试将我的类(2500条记录)从Parse.com导入到Algolia索引中。默认情况下有100条记录的限制,这显然对我不起作用。即使我使用query.limit=1000 如何使用下面的代码导入我的整个类 Parse.Cloud.define("createIndex", function(request, response) { var algoliasearch = require('cloud/algoliasearch.parse.js'); var client = algo

我正在尝试将我的类(2500条记录)从Parse.com导入到Algolia索引中。默认情况下有100条记录的限制,这显然对我不起作用。即使我使用
query.limit=1000

如何使用下面的代码导入我的整个类

Parse.Cloud.define("createIndex", function(request, response) {

var algoliasearch = require('cloud/algoliasearch.parse.js');
var client = algoliasearch('9PsdfsdWVU7', '3b24e897bfb4esdfsdfsdf209e25c28');
var index = client.initIndex('exercises');

console.log("running");

var objectsToIndex = [];

//Create a new query for Contacts
var query = new Parse.Query('Exercises');

query.limit = 1000;
// Find all items
query.find({
    success: function(exercises) {
        // prepare objects to index from contacts
        objectsToIndex = exercises.map(function(exercise) {
            // convert to regular key/value JavaScript object
            exercise = exercise.toJSON();

            // Specify Algolia's objectID with the Parse.Object unique ID
            exercise.objectID = exercise.objectId;

            return exercise;
        });

        // Add or update new objects
        index.saveObjects(objectsToIndex, function(err, content) {
            if (err) {
                throw err;
            }

            console.log('Parse<>Algolia import done');
        });
        response.success("worked");
    },
    error: function(err) {
        response.error("failed");
        throw err;
    }
});

});
Parse.Cloud.define(“createIndex”),函数(请求、响应){
var algoliasearch=require('cloud/algoliasearch.parse.js');
var client=algoliasearch('9psdfsdvuvu7','3b24e897bfb4esdfsfs209e25c28');
var index=client.initIndex(“练习”);
控制台日志(“运行”);
var objectsToIndex=[];
//为联系人创建新查询
var query=newparse.query('Exercises');
query.limit=1000;
//查找所有项目
查询.查找({
成功:功能(练习){
//准备要从联系人索引的对象
objectsToIndex=exercises.map(函数(exercise){
//转换为常规键/值JavaScript对象
exercise=exercise.toJSON();
//使用Parse.Object唯一ID指定Algolia的objectID
exercise.objectID=exercise.objectID;
复训;
});
//添加或更新新对象
saveObjects(objectsToIndex,函数(err,content){
如果(错误){
犯错误;
}
log('ParseAlgolia导入完成');
});
回应:成功(“成功”);
},
错误:函数(err){
响应。错误(“失败”);
犯错误;
}
});
});

Parse.com有一个查找限制,以及所有其他限制当您想要“获取所有对象”时,您可以在此处找到更多信息:

对于您当前的问题,您可以这样做:

Parse.Cloud.define("createIndex", function(request, response) {
    var algoliasearch = require('cloud/algoliasearch.parse.js');
    var client = algoliasearch('9PsdfsdWVU7', '3b24e897bfb4esdfsdfsdf209e25c28');
    var index = client.initIndex('exercises');

    console.log("running");

    //Create a new query for Contacts
    var Exercises = Parse.Object.extend('Exercises');
    var query = new Parse.Query(Exercises);
    var skip = -1000;
    var limit = 1000;

    saveItems();

    function saveItems() {
        skip += limit;
        query.skip(skip + limit);
        query.limit(limit);
        query.find({success: sucess, error: error});
    }

    function sucess(exercices) {
        if (exercices.length === 0) {
            response.success("finished");
            return;
        }


        exercises = exercises.map(function(exercise) {
            // convert to regular key/value JavaScript object
            exercise = exercise.toJSON();

            // Specify Algolia's objectID with the Parse.Object unique ID
            exercise.objectID = exercise.objectId;

            return exercise;
        });

        index.saveObjects(exercises, function(err) {
            if (err) {
                throw err;
            }

            console.log('Parse<>Algolia import done');
            response.success("worked");
            saveItems();
        });

    }

    function error() {
        response.error("failed");
        throw err;
    }
});
Parse.Cloud.define(“createIndex”),函数(请求、响应){
var algoliasearch=require('cloud/algoliasearch.parse.js');
var client=algoliasearch('9psdfsdvuvu7','3b24e897bfb4esdfsfs209e25c28');
var index=client.initIndex(“练习”);
控制台日志(“运行”);
//为联系人创建新查询
var-exerces=Parse.Object.extend('exerces');
var query=newparse.query(练习);
var-skip=-1000;
var限值=1000;
saveItems();
函数saveItems(){
跳过+=限制;
查询.跳过(跳过+限制);
查询.限额(limit);
find({success:success,error:error});
}
功能成功(练习){
如果(exercices.length==0){
回答:成功(“完成”);
返回;
}
练习=练习.map(函数(练习){
//转换为常规键/值JavaScript对象
exercise=exercise.toJSON();
//使用Parse.Object唯一ID指定Algolia的objectID
exercise.objectID=exercise.objectID;
复训;
});
index.saveObjects(练习、函数(err){
如果(错误){
犯错误;
}
log('ParseAlgolia导入完成');
回应:成功(“成功”);
saveItems();
});
}
函数错误(){
响应。错误(“失败”);
犯错误;
}
});

不是
查找
,您是否尝试了
每个
?我得到
类型错误:对象不是
查询上方的一行上的函数。每个
行。这不超过100个结果的限制。我的代码与您的示例一样工作。默认情况下,只返回100个结果。您可以将其扩展到1000条,但是如果您有3000条记录,这仍然不够好