我在Parse中有一个Game
类,其中一个属性是participants
,它是NSStrings
个用户名的数组。我的目标是基于用户名的NSArray(称为selectedParticipants
)执行PFQuery,以便在找到participants
的用户名完全匹配时返回Game对象。
然而,当我使用
时[queryForGames whereKey:@"participants" equalTo:selectedParticipants];
我收到一个错误,我无法根据数组(Cannot do a comparison query for type: __NSArrayM
)进行比较查询。我还尝试了Parse reference指南中列出的其他几种类型的查询,例如使用whereKey:containsAllObjectsInArray:
,但它们将返回无关的Game
个对象,这些对象包含{{1}中的用户名添加}}。有没有办法可以使用PFQuery通过数组的精确匹配进行查询?
谢谢!
答案 0 :(得分:5)
来自iOS Developer Guide on array queries:
[query whereKey:@"participants" containsAllObjectsInArray:selectedParticipants];
从我可以看出,似乎没有一个查询来完全匹配数组而没有额外的元素,但你可以添加一个语句来检查selectedParticipants
数组中针对返回的参与者的元素数量。如果它们相等则完全匹配。
答案 1 :(得分:2)
您可以创建一个cloud function,对数组内容运行'broad'查询,然后在返回结果之前过滤掉任何其他项。这与应用程序和数据存储的调用次数相同,但比将无关数据发送回应用程序更有效。