2016-04-14 25 views
1
class Question: Object { 
    var answers = List<Answer>() 

} 

class Answer: Object { 

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

} 

Questions ile doldurulmuş bir veritabanım var. Bir kullanıcı bir soruya cevap verdiğinde, bugünkü tarihle ve cevabın doğru olması durumunda bir Yanıt nesnesi oluşturulur. Realm ile, veritabanında soruyu en az sayıda doğru yanıtla bulan bir sorgulama yapmak mümkün mü? Realm'de ilgili nesneler için öznitelikleri denetleyen bir sorgu nasıl yapılır?

Ben

realm.objects(Question).filter("[email protected] == @min AND answers.correct == true") 

ile çalıştı ama toplama işlevleri diğer toplama işlevleri ile kombine edilemez, @count görünüyor ve @min aynı sorguda kullanılacak olamaz.

cevap

1

Şu anda almak istediğiniz sonuçları sorgulamak için kolay bir yol yoktur.

Basit çözüm, Question nesnesinin doğru yanıtları için count özelliği ekliyor. En az sayıda doğru yanıtı olan bir soruyu sorgulayabilirsiniz. Ardından, en kısa sayıda doğru cevabı olan bir soruyu sorgulayabilirsiniz. Daha sonra en fazla sayıda doğru cevabı olan bir soruyu sorgulayabilirsiniz.

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