Search code examples
iosswiftparse-platformconstraintspfquery

How to query a class and check if a key is null or a value


I have a class that has a column that can be either null, or the user. If null, it means it is an app default object, if not null, it was a user created object.

How can I setup the query to use BOTH those constraints so that all 'app created' records AND 'currentUser' created records are returned?

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

Solution

  • Figured it out using subqueries:

        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])