我想知道是否有一种方法可以从查询中获取匹配的值,如下所示:
[query whereKey"interests" containedIn: @[@"reading",@"writing",@"typing"]];
现在,说parse有一个名为兴趣的列,其中包含一行值:[“reading”,“typing”]和另一个[“reading”,“typing”,“running”]和另一个[“writing”,“running” ]
有没有办法知道数组匹配的值?
我将提供的containsIn数组将根据用户选择的兴趣列表动态创建。
因此,了解查询匹配的值将非常有帮助,谢谢!
Best Answer-推荐答案 strong>
您需要扫描查询返回的结果集,然后自己执行。
这是一个使用Cloud Code的示例,该示例提供了以下参数
@{ @"interests": @[ @"reading",@"writing",@"typing" ] }
将返回以下形式的结果:
@[ @{ @"user": PFUser, @"matchingInterests": @[ @"reading" ] }, ... ]
云代码功能:
var _ = require('underscore');
Parse.Cloud.define("searchInterests", function (request, response) {
var interests = request.params.interests;
if (!interests) {
response.error('interests is required');
return;
}
new Parse.Query(Parse.User)
.containedIn('interests', interests)
.limit(1000)
.find()
.then(function (users) {
var results = _.map(users, function (user) {
return {
user: user,
matchingInterests: _.filter(user.get('interests'), function (userInterest) {
return _.contains(interests, userInterest);
});
};
});
response.success(results);
}, function (err) {
response.error(err.message);
});
});
关于ios - 解析IOS查询,该查询返回给定键的匹配值,其中值包含在数组中,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/24632021/
|