2014-12-02 59 views
4

夥計們,我想獲得所有的用戶名不包含在數組中的PFUsers(dontShowUsers。我也想限制查詢與變量name,它獲取所有用戶用戶名爲相同名稱的用戶搜索然而,當我這樣做:。兩個查詢約束在一個關鍵與解析和Swift

findUsers.whereKey("username",containsString:name) 
findUsers.whereKey("username",notContainedIn:dontShowUsers) 

每個用戶顯示它peforms這兩個查詢,共同增加了他們,我想約束第一whereKey與第二whereKey。最好的辦法是什麼?

+0

檢出https://parse.com/questions/pfquery-with-multiple-constraints-on-one-key – shim 2014-12-02 16:07:34

+0

我已經檢查過,實際上,我找不到如何實現搜索功能與'''containsAllObjects''' – codeforfood 2014-12-02 16:13:35

+0

難道你不能做一個查詢,然後通過結果進行篩選以找到與其他匹配的結果?或者可以在雲代碼中做到這一點。或者,如果不顯示屬性對用戶是一致的,則可以在用戶對象中有一個單獨的bool列,您可以查詢該列。 – shim 2014-12-02 16:18:59

回答

1

這是一個w唉

println(geoPoint) 
user["location"] = geoPoint 
let rejectedUsers: [String] = user["rejected"].copy() as [String] 
let acceptedUsers: [String] = user["accepted"].copy() as [String] 
let ignoredUsers = rejectedUsers + acceptedUsers 

var query = PFUser.query() 
query.whereKey("location", nearGeoPoint: geoPoint) 
query.whereKey("username", notEqualTo: user.username) 
query.whereKey("gender", equalTo: user["interestedIn"]) 
query.whereKey("username", notContainedIn: ignoredUsers) 
query.limit = 10 
query.findObjectsInBackgroundWithBlock({ 
    (objects: [AnyObject]!, error2: NSError!) -> Void in 
    if error2 != nil { 
     println(error2) 
    } else { 
     if objects.isEmpty { 
      println("empty query") 
     } else { 
      for object in objects { 
       self.usernames.append(object.username) 
       self.userImages.append(object["image"] as NSData) 

通知了我如何複製我的用戶[「拒絕」]從parse 然後我用+來打造「ignoredUsers」

然後我能夠使用數組:

查詢.whereKey(「username」,notContainedIn:ignoredUsers)

0

我會說,你可以解決這個問題,而不使用2約束,就在你執行查詢之前,檢查名稱是否在數組中,如果它是n ot,只需執行查詢。