如何在Parse中执行“不在”查询

我正在Swift中构build一种热门或不风格的应用程序,用户可以分别在图像上投票:HOT,NOT和MAYBE。

每次用户进入一个图像,他们通过点击IBAction进行投票,这会触发一个查询,显示Parse总票数和总热点的结果,如下面的代码所示。

我计划有1000张图片。

我可以预先加载一些对应于每个图像的objectID,然后当用户对图像进行投票时,数据已经被预加载/从parsing中查询了吗? 我会怎么做呢? 在我之前的问题中,有人build议在Parse中使用NOT IN查询。 如何在Parse中进行NOT IN查询,我将如何去做这件事?

现在,我正在为每个ObjectID写一个查询,从1000个不同的图像中抽取1000个查询…显然是不可扩展的。

进一步的代码解释:

swipePositionvariables只是一个计数器,用来计算用户所在的图像。 正在存储的图像现在存储在Xcode中的数组中。 也许他们可以预装,如果他们存储在parsing?

(我只显示“hotButtonQuery”函数,但也有一个Not和Maybe buttonQuery函数。)

有没有办法简单的这个代码,以便它是可扩展的? 因为,到目前为止,我无法缩放25张图片。

func hotButtonQuery() { if swipePosition == 0 { var query = PFQuery(className:"UserData") query.getObjectInBackgroundWithId("RlvK3GhfqE") { (userData: PFObject!, error: NSError!) -> Void in if error != nil { println(error) } else { userData.incrementKey("totalVotes", byAmount: 1) userData.incrementKey("hot", byAmount: 1) var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger var updateHotsUILabel = userData.objectForKey("hot") as NSInteger userData.saveInBackground() println("parse was updated!") self.totalVotesLabel.text = String(updateTotalVotesUILabel) self.totalHotsLabel.text = String(updateHotsUILabel) } } } else if swipePosition == 1 { var query = PFQuery(className:"UserData") query.getObjectInBackgroundWithId("30WlVtgurP") { (userData: PFObject!, error: NSError!) -> Void in if error != nil { println(error) } else { userData.incrementKey("totalVotes", byAmount: 1) userData.incrementKey("hot", byAmount: 1) var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger var updateHotsUILabel = userData.objectForKey("hot") as NSInteger //println(userData.objectForKey("totalVotes")) //println("total HOTs:") //println(userData.objectForKey("hot")) userData.saveInBackground() println("parse was updated!") self.totalVotesLabel.text = String(updateTotalVotesUILabel) self.totalHotsLabel.text = String(updateHotsUILabel) } } } else if swipePosition == 3 { var query = PFQuery(className:"UserData") query.getObjectInBackgroundWithId("5D6ARjk3xS") { (userData: PFObject!, error: NSError!) -> Void in if error != nil { println(error) } else { userData.incrementKey("totalVotes", byAmount: 1) userData.incrementKey("hot", byAmount: 1) var updateTotalVotesUILabel = userData.objectForKey("totalVotes") as NSInteger var updateHotsUILabel = userData.objectForKey("hot") as NSInteger //println(userData.objectForKey("totalVotes")) //println("total HOTs:") //println(userData.objectForKey("hot")) userData.saveInBackground() println("parse was updated!") self.totalVotesLabel.text = String(updateTotalVotesUILabel) self.totalHotsLabel.text = String(updateHotsUILabel) } } } 

只是使用

 query.whereKey("key", doesNotMatchKey: "matchcheck", inQuery: innerQuery) 

不在的一个例子:

  var query = PFUser.query() if (friendsFilter){ var friendsRelation:PFRelation = PFUser.currentUser().relationForKey("friendsRelation") query = friendsRelation.query() } else{ var friendsRelation:PFRelation = PFUser.currentUser().relationForKey("friendsRelation") var innerQuery = friendsRelation.query() query = PFUser.query() query.whereKey("username", doesNotMatchKey: "username", inQuery: innerQuery)