Ios 使用Parse进行查询
我想创建一个查询,如果两个字段中存在某些内容,它将检入一个特定的类(我想显示每个字段的含义是与否和) 这就是我所做的,但它不起作用(根据我看到的一些例子) 我该怎么做 **我想在我的查询中获得包含所有字段(姓名、城市、描述)的searchTeam的所有结果Ios 使用Parse进行查询,ios,parse-platform,pfquery,Ios,Parse Platform,Pfquery,我想创建一个查询,如果两个字段中存在某些内容,它将检入一个特定的类(我想显示每个字段的含义是与否和) 这就是我所做的,但它不起作用(根据我看到的一些例子) 我该怎么做 **我想在我的查询中获得包含所有字段(姓名、城市、描述)的searchTeam的所有结果 谢谢如果我正确理解了您的问题,您需要检查您的搜索词是否在姓名、城市或描述中。方法是: PFQuery * nameQuery = [PFQuery queryWithClassName: self.parseClassName]; [name
谢谢如果我正确理解了您的问题,您需要检查您的搜索词是否在姓名、城市或描述中。方法是:
PFQuery * nameQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"name" containsString:searchTerm];
PFQuery * cityQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"city" containsString:searchTerm];
PFQuery * descriptionQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"description" containsString:searchTerm];
PFQuery * query = [PFQuery orQueryWithSubqueries:@[nameQuery, cityQuery, descriptionQuery]];
这将从查询数组中创建复合或查询。您之前通过向同一查询添加更多约束所做的工作与编写AND查询相同
IE:keyExists:@“name”和keyExists:@“city”和description包含searchTerm如果我正确理解了您的问题,您需要检查您的searchTerm是否在name、city或description中。方法是:
PFQuery * nameQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"name" containsString:searchTerm];
PFQuery * cityQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"city" containsString:searchTerm];
PFQuery * descriptionQuery = [PFQuery queryWithClassName: self.parseClassName];
[nameQuery whereKey:"description" containsString:searchTerm];
PFQuery * query = [PFQuery orQueryWithSubqueries:@[nameQuery, cityQuery, descriptionQuery]];
这将从查询数组中创建复合或查询。您之前通过向同一查询添加更多约束所做的工作与编写AND查询相同
IE:keyExists:@“name”和keyExists:@“city”和description包含searchTerm这个问题的答案很简单,只需要向同一查询对象添加多个whereKey方法调用。例如:
PFQuery *query = [PFQuery queryWithClassName: self.parseClassName];
[query whereKey:@"name" equal:@"someName"];
[query whereKey:@"city" equal:@"someCity"];
[query whereKey:@"description" containsString:searchTerm];
这个问题的答案很简单,只需向同一查询对象添加多个whereKey方法调用。例如:
PFQuery *query = [PFQuery queryWithClassName: self.parseClassName];
[query whereKey:@"name" equal:@"someName"];
[query whereKey:@"city" equal:@"someCity"];
[query whereKey:@"description" containsString:searchTerm];
这将作为原始的所需语句进行计算。您希望:
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);
}
}];
这样,您可以创建三个单独的查询,然后将它们组合到一个更大的查询中,一次返回所有对象
但是请记住,Parse Regex搜索是非常有限的,如果您希望进行大量搜索,那么这可能不是最可伸缩的选项。对于轻量级工作或偶尔进行搜索的应用程序,这应该很好。您希望这样:
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);
}
}];
这样,您可以创建三个单独的查询,然后将它们组合到一个更大的查询中,一次返回所有对象
但是请记住,Parse Regex搜索是非常有限的,如果您希望进行大量搜索,那么这可能不是最可伸缩的选项。对于轻量级工作或偶尔搜索的应用程序,这应该是好的。我认为这是不正确的,这与or查询相同(正如方法名称所述…),他之前所做的是和。我写的是OR,我认为这是不正确的,这与OR查询相同(方法的名称说明…),他以前做的是和。我写的是或。