查询Parse.com关系数据时应该怎么想?

时间:2015-11-03 22:55:06

标签: javascript parse-platform

Parse.com不允许每个查询查询多个对象。我很难绕过如何处理这个限制。

我的基本网络应用程序允许用户登录,创建foos,然后搜索附近其他用户的foos。用户可以为其他用户留下引用,并可以标记不合适的foos。

要显示他们附近的foos,我已经做了4次查询:

  1. 靠近用户
  2. 获取属于1
  3. 结果的参考计数
  4. 获取属于1
  5. 结果的foos
  6. 获取属于3
  7. 结果的标志(表示已标记)

    这个应用还很年轻 - 我希望它变得更复杂。这提出了一堆问题:

    • 我传统上试图限制我出于性能原因提出的网络请求数量。是否可以将我的查询结果打包成一个?
    • Parse的定价取决于请求 - 如何减少我的请求数量? cloudcode中的每个查询是否仍被视为请求?
    • 我应该缓存客户端的查询结果吗?
    • 如何管理这么多请求/查询的分页?
    • 在查询关系数据时,我应该重复第一个查询(.include())还是应该传入对象列表(.containedIn())?

1 个答案:

答案 0 :(得分:0)

  

我传统上试图限制我出于性能原因提出的网络请求数量。是否可以将我的查询结果打包成一个?

是的,您可以发送批量请求,但云代码是更好的选择

  

Parse的定价取决于请求 - 我如何减少我的请求数量?云代码中的每个查询是否仍被视为请求?

是(批量中的每个请求都是如此)

  

我应该在客户端缓存查询结果吗?

一般来说,这只是一个好主意,如果只是为了支持分页和一定程度的离线支持(如果你需要)

  

如何管理这么多请求/查询的分页?

取决于你的排序方式。如果您按最近用户的所有食物排序,则很容易记住查询偏移量。如果你按最近的食物排序,没有特定的数据模型设置就很难,所以你知道每个foo在数据存储中的位置

  

在查询关系数据时,我应该重复第一个查询(.include())还是应该传入对象列表(.containedIn())?

如果您可以在结果中获得更多数据,那么通常最好使用include。包含在内的用于过滤而不是通过...获取更多数据。