Skip to content

Queries on array values broken since 2.3.1 #516

Open
@eskil-booli

Description

@eskil-booli

New Issue Checklist

We're not running the latest Parse server version, hence I haven't checked the last item above.

Issue Description

The fix for equalTo in 2.3.1 broke queries on array values.

Steps to reproduce

For example, to fetch all roles for a specific user:

$query = ParseUser::query();
$parseUser = $query->get("someUserId", true);
$query = ParseRole::query();
$query->equalTo("users", $parseUser);
$parseRoles = $query->find(true);

Actual Outcome

In previous versions, the query sent to Parse would look like:

{
  "users": {
    "__type": "Pointer",
    "className": "_User",
    "objectId": "someUserId"
  }
}

Which would give us the roles for that user back.

Expected Outcome

In 2.3.1 the query became:

{
  "where": {
    "users": {
      "$eq": {
        "__type": "Pointer",
        "className": "_User",
        "objectId":"someUserId"
      }
    }
  }
}

Which does not give any roles back. users on _Role is an array with a single user in our case.

Environment

Parse PHP SDK

  • SDK version: 2.3.2
  • PHP version: 8.2.6

Server

  • Parse Server version: 4.3.0
  • Operating system: Debian
  • Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): AWS

Database

  • System (MongoDB or Postgres): MongoDB
  • Database version: 3.6
  • Local or remote host (MongoDB Atlas, mLab, AWS, Azure, Google Cloud, etc): AWS

Metadata

Metadata

Assignees

No one assigned

    Labels

    bounty:$20Bounty applies for fixing this issue (Parse Bounty Program)type:bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions