异步查询具有多个值的大型数据集

时间:2015-02-21 13:42:38

标签: angularjs performance data-structures parse-platform

我使用Parse作为使用Ionic构建的iOS应用程序。 Parse中有一个名为Exercises的类,如下所示:

{
    "createdAt": "2015-02-19T21:12:01.882Z",
    "tags": [
        "Foam Roller",
        "Extension",
        "Dumbell",
        "Resistance Band",
        "Gym Ball",
        "Olympic Bar"
    ],
    "exerciseDescription": "Sit on a gym ball so that you feel the bony points at the very bottom of your bum in contact with the ball, sit up straight",
    "exerciseID": "2",
    "exerciseName": "Neutral Spine on Gym  Ball - Single Leg and Arm Lift ",
    "images": [
        11,
        12,
        13,
        14
    ],
    "objectId": "pxDBHt7yhs",
    "reps": "12",
    "resistance": "12",
    "sets": "12",
    "updatedAt": "2015-02-19T22:20:45.510Z"
}

我使用一系列复选框为用户搜索标签的数据(大约4000多行)。

上面的数据构成了一个练习,记住会有超过4000个缩放到可能8到10000,我怎样才能最好地查询这些数据并返回结果。

目前我使用AngularJS过滤器在客户端过滤我的数据非常有效,但是我希望我的数据和繁重工作由Parse完成。

我的问题是: 每次将复选框(标记)添加到查询参数数组时,如何构造查询以异步返回结果?此阵列中可能有多达10-15个项目。

从长远来看,这是否可行,同时考虑到服务器的请求数量?真的有多少用户提供免费套餐支持(30个请求/秒)?

=== UPDATE ===

我使用以下代码实现了这个:

var parseFilterQuery = function(queryActiveFilters){

var TagSearch = Parse.Object.extend("Exercises");
var query = new Parse.Query(TagSearch);
query.containsAll("equipment", queryActiveFilters);
query.find({
  success: function(object) {

    console.log(object);

  },
  error: function(error) {
    $ionicPopup.alert({
      title: "Error: " + error.code + " " + error.message
      });
  }
});
};

在控制台中,这工作得非常好 - 当我增加数组中的项目数时,我遇到了一个错误> 10但是我认为我可以应付这一点。平均而言,此查询的延迟为120 - 400毫秒。

目前我只查询30行,如何估算此缩放到> 4000行,我该如何处理最佳解决方案。

0 个答案:

没有答案