从多个解析类正确返回结果

Posted

技术标签:

【中文标题】从多个解析类正确返回结果【英文标题】:Correctly returning results from multiple parse classes 【发布时间】:2014-11-23 13:19:54 【问题描述】:

使用 parse.com 和 javascript SDK。

创建了一个小提琴来显示这个问题http://jsfiddle.net/Dano007/wj5vcd5m/12/

例如,目前您可以多次添加用户“dave”。我希望您只能添加一次用户。

更多信息

我希望能够查询 _User 类和 FriendRequest 类。基本上只从 FriendRequest 类返回一个没有“已连接”状态的用户。

使用下面我收到一个错误,说两个查询必须使用相同的类,有什么替代方法或解决方法?我可以改用matchesKeyInQuery 吗?

var queryOne = new Parse.Query(Parse.User);
            queryOne.equalTo("username", friendName); // find users that match

            var queryTwo = new Parse.Query(FriendRequest);
            queryTwo.notEqualTo("status", "Connected"); // find users that match

            var mainQuery = Parse.Query.or(queryOne, queryTwo);

            mainQuery.find(

解析后端。

因此 fromUser 和 toUser 列中可以有多个记录,但每个用户只能有一个请求。例如

a3aePaphB4 只能有一条记录将请求保存到 netD5wqnRP

【问题讨论】:

是的,你应该使用matchesKeyInQuery @eth3lbert 如果你能提供一个我可以接受的例子作为答案 如果你能提供所需的架构信息,我可以写一个例子。 @eth3lbert 那太棒了!我在这里创建了一个小提琴jsfiddle.net/Dano007/wj5vcd5m/12 我不明白是否需要在第 1 节或第 2 节中进行验证。任何帮助都会很棒! 【参考方案1】:

在第 1 节中:

将用户的 objectIdpic 配对,以便您可以在第 2 部分中找到您需要的确切用户。

例如userId: pic url, ...

以 userId 作为参数调用FriendrequestFriendrequest(userId)

在第 2 节中:

如果无法从查询中获得与 currentUser 和所选用户相关的任何结果,则发出好友请求。示例代码:

var user = new Parse.User();
user.id = userId;
var query = new Parse.Query("FriendRequest");
query.containedIn("fromUser", [currentUser, user]);
query.containedIn("toUser", [currentUser, user]);
return query.first().then(function(record) 
  if (!record) 
    requestFriend.set("fromUser", currentUser);
    requestFriend.set("toUser", user);
    requestFriend.set("status", "Request sent")
    return requestFriend.save().then(function() 
      // request success
      alert('A friend request has been sent: ' + requestFriend.id);
      location.reload(true);
    );
  
);

希望这会对你有所帮助。

【讨论】:

非常感谢!就这样我完全理解是否有可能更新他的小提琴?只是一个完整的证明方式来帮助我学习.. 另请注意,您不能拥有具有相同用户名的用户,因此您可能只使用用户名获取第一个用户或使用 displayName 或其他内容进行搜索。 我想我大致遵循,你能更新小提琴以显示你的意思吗? 欢呼,将接受答案。只是一点,在尝试添加朋友“amy”或“danny”时使用您的小提琴它说请求正在等待处理,但这不是解析后端中没有任何内容的情况。不知道是不是小故障? - 或者可能是 jfiddle 的工作方式和缓存数据的问题。 让我们continue this discussion in chat。

以上是关于从多个解析类正确返回结果的主要内容,如果未能解决你的问题,请参考以下文章

我需要从一个类中返回多个字符串

PostgreSQL:多个存在返回不正确的结果

如何从多个线程中获取第一个结果并取消剩余的

尽管具有正确的 DTO,但无法使用请求的结果类型为具有多个返回的查询创建 TypedQuery

无法从 int 函数返回结果

如何设计一个包含 Web 服务结果的类