0

I've question about way in which I should create query to get expected data.

I've MyObject (ParseObject) which has pointer to ParseUser (column named createdByPtr). In ParseUser I have custom column userGroupPtr.

Now I want to get all MyObject rows which are created by all users (createdByPtr) belongs to user group (userGroupPtr) to which belongs current logged user (ParseUser.CurrentUser()). At this moment I have some kind of draft like this:

ParseQuery<MyObject> query = ParseQuery.getQuery(MyObject.class);
        query.include("createdByPtr");
        query.whereEqualTo("createdByPtr.userGroupPtr", ParseUser.getCurrentUser().get("userGroupPtr"));
        query.orderByDescending("updatedAt");
        query.findInBackground(new FindCallback<MyObject>() {
            @Override
            public void done(List<MyObject> results, ParseException e) {
                ....
            }
        });

I don't have idea how should I transform line:

query.whereEqualTo("createdByPtr.userGroupPtr", ParseUser.getCurrentUser().get("userGroupPtr"));

in to working constrain.

Any suggestions?

1
  • see my edited anwser.! Commented Oct 16, 2015 at 11:40

1 Answer 1

1

Try like this. I have tested and it works perfectly. see Relational Queries

 ParseQuery<ParseUser> innerQuery = ParseUser.getQuery();
    innerQuery.whereEqualTo("userGroupPtr","userGroupPtr"); //value of userGroupPtr
    ParseQuery<ParseObject> query = ParseQuery.getQuery(MyObject.class);
    query.whereMatchesQuery("createdByPtr", innerQuery);
    query.findInBackground(new FindCallback<ParseObject>() {
      public void done(List<ParseObject> objectList, ParseException e) {

          if(e == null){

          }else{
              Log.e("Object", e.getMessage());
          }
      }
    });
Sign up to request clarification or add additional context in comments.

1 Comment

Unfortunately it doesn't work. In result list I don't have any items. I'm not sure if this constrain "MyObject.ColumnPtr" is valid in Parse. I included it in my main query as example to what I want to get.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.