我想知道是否有一种方法可以获得来自如下查询的值:
[query whereKey:@"interests" containedIn: @[@"reading",@"writing",@"typing"]];
现在,假设解析有一个列命名的兴趣,其中包含一个带有值的行:“读取”、“键入”和另一个“读取”、“键入”、“运行”和另一个“写入”、“运行”。
是否有一种方法可以知道数组匹配的值?
我将提供的containedIn数组将根据用户选择的兴趣列表动态创建。
因此,了解匹配的查询值是有帮助的,谢谢!
发布于 2014-07-10 09:33:56
您需要扫描从查询返回的结果集并自己执行。
下面是一个使用云代码的示例,它给出了类似于
@{ @"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);
});
});
https://stackoverflow.com/questions/24632021
复制相似问题