我们如何找到数组的任何元素是否是查询中另一个数组的一部分?
var followers = []; // Array of Parse User pointers
query.howTo("attending", followers); // attending is an array of User Pointers.
也就是说,如果followers
中的任何一个或多个元素存在于attending
中,则查询应匹配。
query.containsAll
匹配所有元素。有没有像query.containsSome
这样的东西?
我很确定你可以查询两个数组。查看文档以更好地检查。
如果没有,可以使用复合查询。
例如,根据关注者数组生成查询数组。在这种情况下,[forEach] 是一个更好的主意,但我假设这里有一个 for 循环。
var followers = []; //array of users
var mainQuery = new Parse.Query(YourOtherObject);
//for each one of followers
var orQuery = new Parse.Query(YourOtherObject);
orQuery.equalTo("attending", follower);
mainQuery = Parse.Query.or(mainQuery, orQuery);
如果您的关注者区域太大,此解决方案可能无法实现性能。但无论如何,我仍然建议在这种情况下使用关系,因为您可以从反向中受益,并且可以从用户查询中获取,他在另一个对象中作为出席而存在。