2

何かが2つのフィールドに存在するかどうかを特定のクラスでチェックインするクエリを作成したい(ANDではなくORを意味するものをそれぞれ表示したい)

    PFQuery *query = [PFQuery queryWithClassName: self.parseClassName];
   [query whereKeyExists:@"name"];  //this is based on whatever query you are trying to accomplish
    [query whereKeyExists:@"city"]; //this is based on whatever query you are trying to accomplish
    [query whereKey:@"description" containsString:searchTerm];

どうすればいいですか?

** すべてのフィールド (名前、都市、説明) から searchTeam を含むすべての結果をクエリで取得したい

ありがとう

4

3 に答える 3

0

あなたはこれを求めている:

NSString *className = @"YourParseClassName";
NSString *searchTerm = @"YourSearchTerm";
PFQuery *nameQuery = [PFQuery queryWithClassName:className];
[nameQuery whereKey:@"name" containsString:searchTerm];
PFQuery *cityQuery = [PFQuery queryWithClassName:className];
[cityQuery whereKey:@"city" containsString:searchTerm];
PFQuery *descriptionQuery = [PFQuery queryWithClassName:className];
[descriptionQuery whereKey:@"description" containsString:searchTerm];

PFQuery *allQuery = [PFQuery orQueryWithSubqueries:@[nameQuery, cityQuery, descriptionQuery]];
[allQuery findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        NSLog(@"Found objects: %@", objects);
    } else {
        NSLog(@"Received error: %@", error);
    }
}];

この方法では、3 つの個別のクエリを作成しますが、それらを 1 つのより大きなクエリに結合して、すべてのオブジェクトを一度に返します。

ただし、Parse Regex 検索はかなり限定的であり、多くの検索を実行したい場合、これは最もスケーラブルなオプションではない可能性があることに注意してください。軽い作業や時々検索するアプリの場合は、これで問題ありません。

于 2014-10-27T19:17:34.807 に答える