2014-11-23 29 views
0

使用parse.com和JavaScript SDK。正確返回多個解析類的結果

創建一個小提琴顯示此問題http://jsfiddle.net/Dano007/wj5vcd5m/12/

例如,此刻你可以添加用戶「戴夫」多次。我希望它能夠工作,您只能添加一次用戶。

更多信息

我希望能夠查詢_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({ 

PARSE BACKEND。

因此,在fromUser和toUser列中都可以有多個記錄,但對每個用戶只能有一個請求。例如

a3aePaphB4只能有一個記錄在那裏請求被保存到netD5wqnRP

enter image description here

+0

是的,你應該使用'matchesKeyInQuery'。 – eth3lbert 2014-11-23 17:24:02

+0

@ eth3lbert如果你可以提供一個我可以接受的例子作爲答案 – Dano007 2014-11-23 17:28:05

+1

如果你能提供所需的模式信息,我可以寫一個例子。 – eth3lbert 2014-11-23 18:50:14

回答

1

在第1節:

配對用戶的objectIdpic,所以你能找到你需要的確切用戶在第2部分中。

例如{userId: pic url, ...}

呼叫Friendrequest用戶id作爲參數: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); 
    }); 
    } 
}); 

希望這會對您有所幫助。

+0

非常感謝!就這樣我完全明白是否有可能更新他的小提琴?只是一個完整的證明方式來幫助我學習.. – Dano007 2014-11-23 21:08:04

+0

另外請注意,你不能有用戶使用相同的用戶名,所以也許你只是得到第一個用戶名或搜索displayName或別的東西。 – eth3lbert 2014-11-23 21:22:01

+0

我想我大致遵循,你是否能夠更新小提琴來展示你的意思? – Dano007 2014-11-23 21:23:38