【问题标题】:Parse.Query and-combination issueParse.Query 和组合问题
【发布时间】:2015-03-31 03:07:35
【问题描述】:

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

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")))

【问题讨论】:

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


    【解决方案1】:

    好的,你想做的事情可以在一个 Query 对象中完成。

    我觉得你要找的是'containedIn'...所以你指定键'fieldTwo'并将一组值传递给'or'。

    这就是我认为它应该是什么样子的,我在 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

    【讨论】:

    • 根据我的经验,当我必须将一个查询与另一个查询连接时,我通常只使用“或”查询,而另一个查询使用“matchesQuery”。但这只是根据我的经验。 Idk,也许还有其他原因。可能有我用过的,我现在想不起来:P
    • 确实你是对的。我看医生太快了,虽然我也看过了。非常感谢。
    猜你喜欢
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    • 2020-01-24
    • 2015-12-01
    • 2017-06-04
    • 1970-01-01
    • 2014-02-08
    相关资源
    最近更新 更多