解析IOS查询,返回给定键的匹配值,其中值包含在数组中

时间:2014-07-08 12:34:57

标签: ios sql objective-c arrays parse-platform

我想知道是否有办法从以下查询中获取匹配的值:

[query whereKey:@"interests" containedIn: @[@"reading",@"writing",@"typing"]];

现在说parse有一个圆柱形命名兴趣,其中包含一行值为:[“阅读”,“打字”]和另一个[“阅读”,“打字”,“正在运行”]和另一个[“写作”, “跑”]

有没有办法知道数组匹配的值是什么?

我将提供的containsIn数组将从用户选择的兴趣列表中动态创建。

所以知道查询匹配哪些值会很有帮助,谢谢!

1 个答案:

答案 0 :(得分:2)

您需要扫描查询返回的结果集并自行完成。

以下是使用Cloud Code的示例,其中给出了诸如

之类的参数
@{ @"interests": @[ @"reading",@"writing",@"typing" ] }

将返回表单的结果:

@[ @{ @"user": PFUser, @"matchingInterests": @[ @"reading" ] }, ... ]

Cloud Code功能:

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);
  });
});