我使用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行,我该如何处理最佳解决方案。