关系查询和近距离按距离 - parse.com

时间:2014-07-04 08:40:17

标签: parse-platform

我正在处理一个问题,我无法解决,我们走了:

我有完全相同的问题,我尝试了Fosco Marotto的解决方案(他是一个解析器),但没有工作:

https://www.parse.com/questions/relational-query-with-near

我目前的情况:我有一个类ITEM,带有指向另一个类USER的指针,该类具有一个GeoPoint字段“location”。

我想要的只是首先显示给定位置顺序附近的所有项目。

这是我的疑问:

    ParseQuery mUserQuery = ParseQuery.getQuery(User.class);
    mUserQuery.whereNear("location",myLocation);

    ParseQuery mItemsParseQuery = ParseQuery.getQuery(Item.class);
    mItemsParseQuery.include("user");
    mItemsParseQuery.whereMatchesQuery("user",mUserQuery);

可行,但检索到的项目不按距离排序

可以这样做吗?一些建议?

感谢!!!

1 个答案:

答案 0 :(得分:1)

问题是针对User类的查询按距离排序,但它仅用作Item类上查询的过滤器。

如果您希望按距离排序结果,只有直接查询User类才能获得该结果。您可以通过两种方式实现这一目标:

  • 使用whereContainedIn(users)查询<{1}}过滤器中的用户列表执行两项查询
  • Item(单个)或item(数组)属性添加到items类,以允许User使用User或{{进行查询1}}

唯一的另一个选择是计算客户端的距离并使用距离增加结果,以便您可以对客户端进行排序。