我正在尝试使用 Parse SDK 在 xcode 中做一个简单的查询,我在其中向用户展示产品,但我不想向他们展示他们已经“喜欢”的产品。
所以我在 Parse 中有两个正在使用的表:
- 产品:有一个 objectId
- 喜欢:包含列:喜欢(说是/否),指向产品的指针,指向用户的指针
我的任何代码是:
//query will get products that the user has liked
PFQuery *likeQuery = [PFQuery queryWithClassName:@"Likes"];
[likeQuery whereKey:@"User_Obj" equalTo:[PFUser currentUser]];
//product query will get products that are not in like query
PFQuery *prodQuery = [PFQuery queryWithClassName:@"Products"];
[prodQuery whereKey:@"objectID" doesNotMatchKey:@"Product" inQuery:likeQuery];
//restrict to 10 items
[prodQuery setLimit:10];
[prodQuery findObjectsInBackgroundWithTarget:self
selector:@selector(getCallback:error:)];
但是,当我尝试运行该用户以前喜欢的项目时,将被退回。
如果我在 SQL 中执行此操作,我会编写如下内容:
SELECT product FROM product WHERE product NOT IN (SELECT product FROM likes WHERE useriD = currentUser AND like = yes)
任何帮助将非常感激!
谢谢,蒂姆