【问题标题】:Parse.com match all pointers on array in given relation columnParse.com 匹配给定关系列中数组上的所有指针
【发布时间】:2019-03-22 15:03:54
【问题描述】:

我有一个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();

【问题讨论】:

  • 嗨!你还在面对这个错误吗?
  • 是的,我仍然坚持我的解决方案...
  • 你能把变量成员的内容粘贴到这里吗?
  • members 只是 _User 的关系

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


【解决方案1】:

这应该适合你

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的信息

【讨论】:

  • 见我上面的解决方案。我想检查给定 N 个用户是否都是特定对话的所有成员并得到它。我尝试在 userRelationQuery.equalTo("members", ParseUser{N}) 的位置创建 AND 查询,但仍然无效。
猜你喜欢
  • 2016-01-24
  • 2016-11-07
  • 1970-01-01
  • 1970-01-01
  • 2021-02-22
  • 1970-01-01
  • 2019-07-07
  • 2011-04-02
  • 1970-01-01
相关资源
最近更新 更多