Skip to content

doesNotMatchKeyInQuery and equalTo doesn't work in single query if used for same column #3678

@xor22h

Description

@xor22h

Issue Description

Trying to make query by using doesNotMatchKeyInQuery() and equalTo() on same column fails to produce correct output;

Steps to reproduce

 var query = new Parse.Query("Posts");
 query.equalTo("author", SOME_USER_POINTER);

var banListQuery = new Parse.Query("UserBlockList");
banListQuery.equalTo("blockedUser", req.user);

query.doesNotMatchKeyInQuery("author", "blockedBy", banListQuery);
query.include("author");
query.find();

Expected Results

Return post of user provided in equalTo() only if requester (req.user) is not blocked by post author;

Actual Outcome

equalTo() takes bigger priority and post is returned even if post author has req.user blocked;
Note: not having equalTo() seems to work correctly, blocked users don't see the content;

Environment Setup

  • Server

    • parse-server version (Be specific! Don't say 'latest'.) : 2.3.7
    • Operating System: Ubuntu 16.04
    • Hardware: 8 x Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz (1 Socket), 8GB Ram
    • Localhost or remote server? (AWS, Heroku, Azure, Digital Ocean, etc): Remote server at OVH
  • Database

    • MongoDB version: 3.2.12
    • Storage engine: wiredTiger
    • Hardware: 8 x Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz (1 Socket), 12GB Ram
    • Localhost or remote server? (AWS, mLab, ObjectRocket, Digital Ocean, etc): OVH

Logs/Trace

Include all relevant logs. You can turn on additional logging by configuring VERBOSE=1 in your environment.

Metadata

Metadata

Assignees

No one assigned

    Labels

    type:bugImpaired feature or lacking behavior that is likely assumed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions