2015-09-23 285 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'會做到這一點,但沒有簡短的版本需要一個數組。 –

相關問題