对orQueries进行解析限制

时间:2016-01-15 18:38:37

标签: database swift parse-platform subquery xcode7

我很难找到关于Parse的任何文档来回答我的问题。这是我需要的一个例子。

let colorQuery1 = PFQuery(classname: "colors")
colorQuery1.whereKey("color", equalTo: red)

let colorQuery2 = PFQuery(classname: "colors")
colorQuery2.whereKey("color", equalTo: blue)

let colorQuery3 = PFQuery(classname: "colors")
colorQuery3.whereKey("color", equalTo: green)

let mainColorQuery = PFQuery.orQueryWithSubqueries([colorQuery1, colorQuery2, colorQuery3])
mainColorQuery.findObjectsInBackgroundWithBlock {
(objects, error) -> Void in
// retrieve data
}

我的问题是,我想从前两个查询中检索大约15个项目,然后从上一个查询中检索大约150个项目。这是不允许的,因为我无法在subQueries上设置限制。我也很想知道这个例子中查询的默认限制。在我提供的示例中,如果有1000个红色对象,mainQuery只返回100或1000个红色对象,然后第二个和第三个查询留空?帮我找一个限制subQueries的方法。

1 个答案:

答案 0 :(得分:0)

所有查询的默认限制为100,最大限制为1000.或者将多个查询合并为> 1k结果将生成1k相关的子集(我认为)与查询传递的顺序相关。

但是在你的情况下,你可以通过用一个使用containedIn来指定析取的OR'd查询替换OR'd查询来获得更多的控制权......

let colors = ["red", "blue", "green"]
query.whereKey("color", containedIn: colors)
query.limit = 1000  // still the max

使用此单个查询,您可以添加其他约束来限制结果计数,和/或重复执行它,并跳过页面浏览> 1k结果。