Область: Получить объекты с выбором по списку свойств - PullRequest
0 голосов
/ 05 сентября 2018

Мои классы моделей (сокращенно):

class Customer: RealmSwift.Object {
  let orders = List<Order>()
}

class Order: RealmSwift.Object {
  @objc dynamic var areaCode: String? = nil
  @objc dynamic var isPaid: Bool = false
}

Теперь я хочу получить всех клиентов с неоплаченными заказами в данной области.

Я использую этот запрос, чтобы получить их (я проверял этот запрос с помощью Realm Studio):

orders.areaCode == '5429' and orders.isPaid == false

Но с этим Запросом я не получаю только клиентов с неоплаченными заказами в '5429'. Я также получаю клиентов с заказами в «5429» и оплаченными заказами в другом районе. Но я получаю только клиентов с обеими частями, но даже в разных рядах.

Как я могу изменить свой запрос, чтобы получать только "клиентов с неоплаченными заказами в '5429'"?

1 Ответ

0 голосов
/ 07 сентября 2018

Вы можете использовать подзапрос, чтобы найти все Customer s, свойство orders которых содержит хотя бы один Order, где areaCode равно "5429" и isPaid равно false.

let areaCode = "5429"
let nonPaidInArea = realm.objects(Customer.self).filter("SUBQUERY(orders, $order, $order.areaCode == %@ AND $order.isPaid == false).@count>0",areaCode)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...