按嵌套的 RealmList 项的属性过滤

Filtering by nested RealmList item's attributes

我在编写查询来执行我想做的事情时遇到问题 -- 因为我不确定我的知识库是否可行,所以我想我会在这里问一个问题。我知道执行此操作的其他方法,但我正在尝试编写一个查询,使我能够将该查询用作托管对象,我提出的其他解决方案不会提供该功能。问题是:

我有一个 SiteInfo 和 Level 模型,它包含站点以及关联的 Levels:

open class SiteInfo(
    var orgId: Int = INVALID_ID,
    @PrimaryKey var id: Int = INVALID_ID,
    var site: Site = Site(),
    var levels: RealmList<Level> = RealmList()) : RealmObject()

open class Level(@PrimaryKey var id: Int = INVALID_ID,
                 var building: String = "",
                 var floor: String = "",
                 var site_id: Int = INVALID_ID,
                 var floorplan_url: String? = null) : RealmObject()

我正在尝试过滤级别列表不为空的网站,我已经做到了这一点:

realm.where(SiteInfo::class.java).not().isEmpty("levels").findAllAsync()

但是,要使网站有效,至少其中一个级别必须具有非空 floorplan_url。我不确定是否有支持这一点的查询语法。如果有人能让我知道这是否可行,那就太好了——否则我将采用解决方法。

你试过了吗

realm.where(SiteInfo::class.java)
     .isNotEmpty("levels")
     .isNotNull("levels.floorplan_url")        
     .findAllAsync()

?