Parse.Query和组合问题

时间:2015-03-31 03:07:36

标签: javascript ios parse-platform cloud-code pfquery

在云代码中,我使用这种代码进行了查询:

theMainQuery = new Parse.Query("myClass");
theMainQuery.equalTo("fieldOne", "champion");

theSubQuery = new Parse.Query("myClass");
theSubQuery.equalTo("fieldTwo", "USA");

the2ndSubQuery = new Parse.Query("myClass");
the2ndSubQuery.equalTo("fieldTwo", "BRASIL");

theSubQuery = Parse.Query.or(theSubQuery,the2ndSubQuery);

theMainQuery = Parse.Query.and(theMainQuery,theSubQuery);

换句话说,我想要一个基于这个条件的查询:

((fieldOne equals "champion") and ((fieldTwo equals "USA") or (fieldTwo equals "BRASIL")))

在通常的C风格写作中,我想选择匹配的记录:

((fieldOne == "champion") && ((fieldTwo == "USA") || (fieldTwo == "BRASIL")))

问题是它不起作用,我想我的Parse.Query.and是错误的。那我怎样才能得到我想要的结果?

当然,我很乐意避免以这种长格式重新构造查询:

 (((fieldOne == "champion") && (fieldTwo == "USA")) || ((fieldOne == "champion") && (fieldTwo == "BRASIL")))

1 个答案:

答案 0 :(得分:1)

好的,你想要做的就是在一个Query对象中完成。

我觉得你所寻找的是包含在内的......所以你指定了关键字' fieldTwo'并将一系列值传递给'或'用。

所以我认为它应该是什么样的,我在Objective-C中实现了这个,但不是javascript。但继续我的javascript版本

var query = new Parse.Query('myclass');
query.equalTo('fieldOne', 'champion');
query.containedIn('fieldTwo', ['USA', 'Brazil']);
query.find();

我希望这就是你所寻找的...顺便说一句,我能够在文档https://parse.com/docs/js_guide#queries中找到它。文档非常有用,但有时对我没有帮助:P