如何在解析表的列中搜索子字符串

时间:2014-07-08 12:49:08

标签: javascript parse-platform

我的解析表中有一个名为emailId的列。结构如下所示

objectId     emailId
asdsdfdf     abc@gmail.com
agrhxcdf     xyz@gmail.com
qwrtyjdf     abc@gmail.com efg@gmail.com

我的emailId列中有一些多个电子邮件子字符串条目,其中字符串为列类型,例如第3行中包含objectId qwrtyjdf。

我想搜索所有带有价值的电子邮件ID" abc@gmail.com"

使用以下查询时,我将长度设为1。

query.equalTo("emailId", "abc@gmail.com");
query.contains("emailId", "abc@gmail.com");

我需要知道如何在parse表中查询emailId列,以便它应该从第1行和第3行返回长度为2。

1 个答案:

答案 0 :(得分:0)

我相信Parse使用AND连接在同一个查询中连接多个条件,这意味着 - 获取所有等于abc@gmail.com并且还包含abc@gmail.com作为子字符串的记录。查看您提供的源数据,仅记录否。 1匹配这个条件。

相反,你需要OR连接 - 要么等于abc@gmail.com要么包含abc@gmail.com作为子串。检查例如here如何构造复合查询(OR)。

顺便说一下,为什么不使用query.contains()功能。我认为它应该匹配1和3。

希望它有所帮助。


更新

好吧,假设Parse类叫做电子邮件,我已经在Objective-C中尝试了它(应该是类似的),并且遵循JS代码也应该有效:

 var query = new Parse.Query("E-mail");
 query.contains("emailId", "abc@gmail.com");
 query.find({
   success: function(results) {
     // results contains a list of players that either have won a lot of games or won only a few games.
   },
   error: function(error) {
     // There was an error.
   }
 });