PFQuery对一个键有多个约束

Imr*_*med 11 iphone ios parse-platform

我有parse.com数据库.我在名为"text"的表中有列.我必须找到具有与AND条件匹配的多个键的文本.我尝试了各方面.我试着用:

    PFQuery *query=[PFQuery queryWithClassName:@"post"];
    [query whereKey:@"text" containedIn:Array];
Run Code Online (Sandbox Code Playgroud)

要么

    PFQuery *query=[PFQuery queryWithClassName:@"post"];
    [query whereKey:@"text" containsAllObjectsInArray:Array];        
Run Code Online (Sandbox Code Playgroud)

要么

PFQuery *query=[PFQuery queryWithClassName:@"post"];
for (NSString *str in filtersArray) {

    [query whereKey:@"text" containsString:str];

}
Run Code Online (Sandbox Code Playgroud)

但没有人工作.如果解析s​​dks支持或不支持,请指导我吗?如果是,我怎样才能达到效果.提前谢谢了 :)

EIDT:

例如,我在数据库中有三个条目作为文本:

  1. "我有一个数据输入"

  2. "我在数据中找不到任何东西"

  3. "我怎样才能做到这一点"

如果通过"i"和"this"它应该返回条目(3)

如果传递"i"和"data"它应该返回条目(1,2)

如果通过"我"和"其他"它应该什么也不返回

kei*_*r04 2

您的查询不起作用的原因是因为 Parse 不支持在同一键上多次使用相同的约束(在本例中为“containsString:”)。

因此,我建议是查询一个正则表达式,该表达式将使用- (instancetype)whereKey:(NSString *)key matchesRegex:(NSString *)regex.

NSArray *qryStrings = @[str1, str2, str3, ....]; //strings you are trying to match

//string which will hold our regular expression
NSString *regexString = @"^"; //start off the regex

for (NSString *str in qryStrings) { //build the regex one filter at a time
    regexString = [NSString stringWithFormat:@"%@(?=.*%@)", regexString, str];
}

regexString = [NSString stringWithFormat:@"%@.*$", regexString]; //finish off the regex

PFQuery *query = [PFQuery queryWithClassName:@"post"];
[query whereKey:@"text" matchesRegex:regexString];
[query findObjectsInBackgroundWithBlock:^(NSArray *objects, NSError *error) {
    if (!error) {
        //objects array contains matching rows with matching strings
    }
    else {
        NSLog(@"%@ %@", error, [error userInfo]);
    }
}];
Run Code Online (Sandbox Code Playgroud)