Parse.com匹配给定关系列中的数组上的所有指针

时间:2019-03-22 15:03:55

标签: javascript arrays parse-platform parse-javascript-sdk

我有Conversation类,它们的members关系属性指向User类。

members属性由属于特定对话的人组成。

现在,我想查询给定的指针数组User是否属于特定对话的一部分,因为所有元素都必须匹配。

我尝试使用containsAll("members", users),但得到undefinedcontainedIn()有效,但是它返回了所有匹配的会话,这些会话在数组中至少有一个匹配的UserequalTo("members", users)的运行效果不佳,请注意,users变量是指针数组,而不仅仅是字符串objectId的数组,但是我也尝试了一个,但是却无济于事。

这是我尝试过的: *创建AND查询,其中userRelationQuery.equalTo('member', ParseUser1)最多N个用户,但仍然不起作用

这是我的解决方案,但随时可以纠正此问题以进行改进

const members = getMembers();

let query = new Parse.Query("Conversation").equalTo(
 "members",
 members[0]
);

for (let i = 0; i < members.length; i++) {
 query = new Parse.Query("Conversation")
   .matchesKeyInQuery("objectId", "objectId", query)
   .equalTo(
     "members",
     members[i]
   );
}

const chat = await query.includeAll().first();

1 个答案:

答案 0 :(得分:0)

这应该为您工作

var conversationClass = Parse.Object.extend('Conversation');
var conversationQuery = new Parse.Query(conversationClass);
return conversationQuery.first()
    .then(queryResult => {
        var userRelationQuery = queryResult.relation('members').query(); //You can get all users releated to this conversation
        //userRelationQuery.equalTo('username', 'Blank0330') // Or you can add more conditions
        return userRelationQuery.find()
            .then(users => {
                return users; //This is your releated users
            });
    });

有关Parse-JS-SDK Relation

的更多信息