【问题标题】:How to query a class and check if a key is null or a value如何查询类并检查键是空还是值
【发布时间】:2015-02-27 00:37:00
【问题描述】:

我有一个类,它的列可以为空,也可以为用户。 如果为null,则表示它是应用程序默认对象,如果不为null,则表示它是用户创建的对象。

如何设置查询以同时使用这些约束,以便返回所有“应用创建”记录和“当前用户”创建记录?

    var query = PFQuery(className: "MyClass")
    query.whereKey("createdBy", equalTo: PFUser.currentUser())
    query.whereKeyDoesNotExist("createdBy")

【问题讨论】:

    标签: ios swift parse-platform constraints pfquery


    【解决方案1】:

    使用子查询解决了这个问题:

        var defaultQuery = PFQuery(className: "MyClass")
        defaultQuery.whereKeyDoesNotExist("createdBy")
    
        var userQuery = PFQuery(className: "MyClass")
        userQuery.whereKey("createdBy", equalTo: PFUser.currentUser())
    
        var query = PFQuery.orQueryWithSubqueries([defaultQuery, userQuery])
    

    【讨论】:

      【解决方案2】:

      您可以在查询中添加更多条件吗?

      试试:

      query.whereKey("createdBy", equalTo: (PFUser.currentUser() || nil))
      

      【讨论】:

      • 如果它不存在,那只会使用 PFUser.currentUser() 或 nil 。我想实际获取所有记录 A)具有“nil”(未定义)作为 createdBy 和 B)由 currentUser 创建。
      • 所以你希望结果由用户创建和应用程序创建分开?
      • 没有。我希望它们组合在一个查询调用中。 “获取应用创建的所有记录和当前用户创建的所有记录”。想出了一种方法来做到这一点。请参阅下面的答案。
      猜你喜欢
      • 1970-01-01
      • 2011-06-30
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      • 1970-01-01
      相关资源
      最近更新 更多