如何编写比较同一个表中两个字段的iOS Parse查询?

时间:2014-03-20 09:58:46

标签: ios parse-platform nspredicate pfquery

我有一个包含2个数字字段的解析表,我需要创建一个查询,只下拉field2小于field1的记录。

我尝试了这个但是它提供了一个例外,即谓词必须有一个键路径和一个常量:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"field2 < field1"];
PFQuery *query = [PFQuery queryWithClassName:parseRequestObject predicate:predicate];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {

    for (PFObject *object in objects) {
        NSLog(@"%@", object.objectId);
    }

}];

1 个答案:

答案 0 :(得分:1)

看来,查询此问题的唯一方法是获取所有数据并在设备上进行比较。然而,我设法使用在field2变得大于field1时设置bool的云代码来绕过它。现在我可以查询BOOL字段以获取我需要的记录。

Parse.Cloud.beforeSave("MyObject", function(request, response) {
    var field1 = request.object.get("field1");
    var field2 = request.object.get("field2");

    if (field2 >= field1) {
        request.object.set("completed", true);
    }

    response.success();
});