解析查询Javascript - "contains"关于关系数据

Parse query Javascript - "contains" on relational data

本文关键字:quot 关系 数据 于关系 查询 contains Javascript      更新时间:2023-09-26

假设我有一个指向对象B的对象A。对象B有一个属性"title"。我想用一个字符串查询对象A这个字符串包含在对象B的标题中。就像

var query1 = new Parse.Query("objectA");
query1.include("objectB");
query1.contains("objectB.title", anyQuery);
query.find({
          success: function(obj){
     },
     error: function(obj, error) {    
     }
});

这里的"anyQuery"可以是用户在搜索字段中输入的任何字符串。假设用户输入"Mary"作为查询,我应该得到与标题包含"Mary"的objectA相关的所有objectA。例如"Maryland"。简单来说,我想在parse中对相关数据执行类似的查询。

编辑

谢谢你的回复。我在https://parse.com/docs/js_guide#queries-relational上阅读了文档。我想进一步提问。我想在一个或条件下使用matchesQuery形成的查询,我在我的代码中所做的是下面,但我没有得到结果:

if(filterQuery) {
            var Organization = Parse.Object.extend("Organization");
            //LIKE QUERIES
            var nameLikeQuery = new Parse.Query(Parse.User);
            nameLikeQuery.contains("nameLc", filterQuery);  
            var phoneLikeQuery = new Parse.Query(Parse.User);
            phoneLikeQuery.contains("phone", filterQuery);      
            var emailLikeQuery = new Parse.Query(Parse.User);
            emailLikeQuery.contains("username", filterQuery);
            var organizationMatchQuery = new Parse.Query(Organization);         
            organizationMatchQuery.contains("titleLc", filterQuery);    
            var userOrganizationQuery = new Parse.Query(Parse.User);
            userOrganizationQuery.matchesQuery("organization", organizationMatchQuery);
            var userQuery1 = new Parse.Query.or(nameLikeQuery, phoneLikeQuery);
            var userQuery2 = new Parse.Query.or(emailLikeQuery, userQuery1);
            userQuery = new Parse.Query.or(userQuery2, userOrganizationQuery);
        } else {
            userQuery = new Parse.Query(Parse.User);
        }       
        if(type != "ALL") {
            userQuery.equalTo("userType", type);
        }
        userQuery.include("organization");
        userQuery.descending("createdAt");
        userQuery.find();

正如Chris所说,这个场景在这里的关系查询中有很好的文档:

https://parse.com/docs/js_guide queries-relational

因此,对于您的特殊需求,它看起来像:

var objectBQuery = new Parse.Query("objectB");
objectBQuery.contains("title", anyString);
var objectAQuery = new Parse.Query("objectA");
objectAQuery.matchesQuery("objectB", objectBQuery);
objectAQuery.find().then(function (list) {
    // use list
}, function (error) {
    console.log(error);
});