code: public AVQuery<T> whereMatchesQuery(String key, AVQuery<?> query) {
      Map<String, Object> map =
              AVUtils.createMap("where", query.conditions.compileWhereOperationMap());
      map.put("className", query.className);
      if (query.conditions.getSkip() > 0) map.put("skip", query.conditions.getSkip());
      if (query.conditions.getLimit() > 0) map.put("limit", query.conditions.getLimit());
      if (!StringUtil.isEmpty(query.getOrder())) map.put("order", query.getOrder());
      addWhereItem(key, "$inQuery", map);
      return this;
    }
docs: Add a constraint to the query that requires a particular key's value match another AVQuery.
  This only works on keys whose values are AVObjects or lists of AVObjects.
  
  @param key The key to check.
  @param query The query that the value should match
  @return Returns the query so you can chain this call.