如何在Realm中执行查询以检查相关对象的属性?

时间:2016-04-14 15:21:25

标签: swift realm

class Question: Object {
    var answers = List<Answer>()

}

class Answer: Object {

    dynamic var date: NSDate? = nil
    dynamic var question: Question!
    dynamic var correct = false

}

我的数据库中填充了Questions。当用户回答问题时,会创建一个Answer对象,其中包含今天的日期以及答案是否正确。 使用Realm,是否可以使用最少数量的正确答案在数据库中查找问题?

我试过

realm.objects(Question).filter("answers.@count == @min AND answers.correct == true")

但是聚合函数不能与其他聚合函数结合使用,似乎@count@min不能在同一个查询中使用。

1 个答案:

答案 0 :(得分:1)

目前,没有简单的方法来查询您想要获得的结果。

简单的解决方案是添加count属性以获得Question对象的正确答案。

class Question: Object {
    let answers = List<Answer>()
    dynamic var correctAnswerCount = 0
}

然后,您可以查询具有最少数量正确答案的问题。

let fewest = realm
    .objects(Question)
    .sorted("correctAnswerCount", ascending: true).first