从多个解析类正确返回结果
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 节中:
将用户的 objectId
与 pic
配对,以便您可以在第 2 部分中找到您需要的确切用户。
例如userId: pic url, ...
以 userId 作为参数调用Friendrequest
:Friendrequest(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。以上是关于从多个解析类正确返回结果的主要内容,如果未能解决你的问题,请参考以下文章