2015-09-23 233 views
1

比方说,我有如何检查数组是否包含在集合中?

class A 
{ 
    dynamic var id = 0 
    dynamic var text = "" 
} 

class B 
{ 
    dynamic var id = 0 
    let collection = List<A> 
} 

我想知道如果Int(IDS)的阵列包含在B.collection(匹配id属性)。这样

realm.objects(B).filter("%@ in collection.map{$0.id}", [1,2]) // pseudocode, obviously wrong 

的东西,如果一个Intcollection包含(再次测试id属性)我会很开心就好无法检查。我尝试使用SUBQUERY,但我无法找到正确的语法。

感谢

+0

什么是List类的A对象?为什么你不使用Array或Set?然后你可以执行过滤功能。 –

+0

@AlešOskarKocur:这是一个数据库查询,我第一次尝试查看数据库引擎是否提供任何帮助。谢谢 – StackOverflower

回答

2

realm.objects(B).filter("ANY collection.id IN %@", [1, 2])会给你所有B对象,其中collection具有为1的id或2

+0

不完全是我想要的,因为eI需要1和2匹配,无论如何它都有帮助。谢谢! – StackOverflower

+1

'ANY collection.id = 1 AND ANY collection.id = 2'会做到这一点,但没有简短的版本需要一个数组。 –

相关问题