在Parse.com - iOS中将字典对象与数组进行比较

时间:2016-03-30 05:49:19

标签: ios parse-platform nsarray nsdictionary pfquery

我有一个具有对象类型列的类,例如

          COLUMN 1
Row 1 :   {"gender":"male","name":"A"}
Row 2 :   {"gender":"female","name":"B"}
Row 3 :   {"gender":"male","name":"C"}

我需要获取COLUMN1中键name的对象与我的数组["A","B"]的内容匹配的行

因此,在可能的情况下,查询应返回ROW 1和ROW 2。

据我所知,我知道这个方法,但它用于将数组与Parse中的string列进行比较: [query whereKey:@"name" containsAllObjectsInArray:selectedParticipants];

如何将我的数组与字典列进行比较?

1 个答案:

答案 0 :(得分:1)

parse.com集合中对象类型的一个缺点是只能查询完全匹配。在当前模型下执行此操作的唯一方法是使用其他列限定查询以获取可能与对象条件匹配的最小集合,然后在客户端进行对象匹配。

如果集合包含大量文档,并且您希望它快速运行,那么更好的选择是调整数据模型,以便嵌入对象中的可查询属性是它们自己的列...

       name (string) gender (string) otherStuff (object)
row0   "A"           "male"          { /* stuff we don't query on */ }
row1   "B"           "female"        { ... }
...

这样,您可以使用[query whereKey:@"name" containedIn:@[@"A", @"B"]]来限定查询。请注意,这不是containsAllObjectsInArray,它是如何测试数组属性。