У меня есть 2 объекта: Person and Transaction. У человека может быть несколько транзакций (1-много). Теперь я хочу получить всех людей, у которых есть сумма (transaction.amount)> 0. Как я могу сделать это наиболее эффективным способом? НастройкаЦарство: запрос с агрегированием свойств
Моих моделей:
class Person: RLMObject {
dynamic var name = ""
dynamic var transactions = RLMArray(objectClassName: Transaction.className())
var balance: Int {
var balance = 0
for transaction in self.transactions {
let transaction = transaction as Transaction;
balance += transaction.amount
}
return balance
}
}
class Transaction: RLMObject {
dynamic var amount = 0
}
И попытка запрос:
let debtPersons = Person.objectsWhere("balance < 0")
let creditPersons = Person.objectsWhere("balance >= 0")
На этом наивном подходе получения:
'Invalid column name', reason: 'Column name balance not found in table'