我正在Parse / backbone应用程序中的浏览器上的Parse查询中构建Parse.com查询。
我有一个两阶段查询(并且想要中间结果)所以我在第一个查询的fetch中的when子句中构造第二个查询:
// changeJob is a backbone event handler triggered from global app state
changeJob: function() {
var taskQuery = new Parse.Query(Task);
taskQuery.equalTo("publicJob", theAppState.get("publicJob"));
taskQuery.equalTo("status", "accepted");
taskQuery.limit(20);
this.tasks.query = taskQuery;
var self = this;
this.tasks.fetch().then(function(foundTasks){
console.log("got " + foundTasks.length + " tasks");
var responsesQuery = new Parse.Query(StepResponse);
responsesQuery.containedIn("task", foundTasks); /// Stack blows here
responsesQuery.include("task");
responsesQuery.include("task.taskLocation");
responsesQuery.limit(1000);
self.responses.query = responsesQuery;
console.log("fetch the step responses");
self.responses.fetch();
});
我的集合是使用全局范围声明的模型对象:
var StepResponse = Parse.Collection.extend("StepResponse", {
});
// StepResponse Collection
var StepResponseCollection = Parse.Collection.extend({
model: StepResponse,
});
var Task = Parse.Object.extend("Task", {
});
// Task Collection
var TaskCollection = Parse.Collection.extend({
model: Task,
});
当我尝试基于第一个查询中使用数组来限制内部查询时,我得到了超出最大堆栈大小的错误。
我见过一些人在SO上讨论这个问题,但我不认为它们是重复的 - 我在这两个类之间没有任何双向链接,当我设置查询时堆栈就会爆炸,在我执行它之前尝试保存任何对象。