Parse.com doNotMatchKeyInQuery不使用objectId和指针

时间:2014-07-09 20:32:05

标签: javascript parse-platform

我正在尝试在Parse.com上返回一个尚未在朋友联接表中的用户的列表,但似乎尝试将指针记录与用户objectId匹配将无效。

我们可以将其分解为单独的调用,但这会导致性能不佳。

有人解决了这个问题吗?

//Get users current friends
var myfriends = new Parse.Query("UserFriend");
myfriends.equalTo("myUserId",user);

//get users who are not already friends
var userQuery = new Parse.Query(Parse.User);
userQuery.doesNotMatchKeyInQuery("objectId", "theirUserId", myfriends);
userQuery.find().then(function(newfriends){
  //do stuff with newfriends
  //New friends should not include existing friends but it does..
});

非常感谢能够提供帮助的任何人。

4 个答案:

答案 0 :(得分:0)

我没有对此进行过测试,但请试一试..从我的评论中说:“对Parse.User进行查询,该查询与用户朋友的查询中的键匹配,对应于与该查询不匹配的用户查询”。这可能会遇到同样的问题。

var friendsQuery = new Parse.Query(Parse.User);
var myfriends = new Parse.Query("UserFriend");
myfriends.equalTo("myUserId",user);
friendsQuery.matchesKeyInQuery("objectId", "theirUserId", myfriends);

var userQuery = new Parse.Query(Parse.User);
userQuery.doesNotMatchQuery("objectId", friendsQuery);
//Assuming Cloud Code...
userQuery.find({ useMasterKey: true }).then(function(newfriends){
  //do stuff with newfriends
});

答案 1 :(得分:0)

我也无法使用它。相反,我使用了doNotMatchQuery,它可以用指针查找。

答案 2 :(得分:0)

我遇到了类似的问题,发现无法将 objectId 与指针对象进行比较。所以在上面的例子中:

userQuery.doesNotMatchKeyInQuery("objectId", "theirUserId", myfriends);

theirUserId 需要是一个包含实际字母数字Id的字符串键,而不是指针。

答案 3 :(得分:0)