【问题标题】:Parse limits on orQueries解析 orQueries 的限制
【发布时间】:2016-01-15 18:38:36
【问题描述】:

我很难找到任何关于 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 个项目。这是不允许的,因为我无法对子查询设置限制。我也很想知道在这种情况下查询的默认限制。在我提供的示例中,如果有 1000 个红色对象,mainQuery 是否只返回 100 或 1000 个红色对象,然后第二个和第三个查询留空?请帮我找到一种方法来限制子查询。

【问题讨论】:

    标签: database swift parse-platform subquery xcode7


    【解决方案1】:

    所有查询的默认限制为 100,最大限制为 1000。对几个组合到 > 1k 结果的 OR'ing 将生成与传递查询的顺序相关(我认为)的 1k 子集。

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

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

    使用这个单一查询,您可以添加额外的约束来限制结果计数,和/或重复执行它并跳转到超过 1k 个结果的页面。

    【讨论】:

    • 你已经给了我我需要的东西,但这是否意味着每个子查询只会返回 100 个对象而不管键中有多少?
    • 100,除非您将限制设置得更高,最高可达 1k。
    猜你喜欢
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多