Получить количество записей, соответствующих запросу CloudKit

Можно ли с помощью CloudKit на iOS определить количество записей, которым соответствует конкретный запрос?

На самом деле меня не интересует чтение самих записей, я просто хочу знать, сколько записей соответствует запросу. Я знаю, что совпадающие записи возвращаются партиями, поэтому в принципе я мог бы получить каждую партию записей и вычислить общее количество записей, суммируя числа в каждой партии. Однако количество совпадающих записей, вероятно, будет большим для этого приложения, и, учитывая, что меня не интересует фактическое содержание записи, это кажется неэффективным и расточительным.

Заранее спасибо.


person Chris    schedule 18.02.2015    source источник


Ответы (1)


В CloudKit нет функций агрегации. Единственный способ сделать подсчет — получить все записи.

person Edwin Vermeer    schedule 19.02.2015
comment
Спасибо за ответ, Эдвин. - person Chris; 19.02.2015
comment
Это все еще актуально или есть какие-то обновления по этому поводу? Немного странно, что нам приходится извлекать данные только для подсчета. Я всегда сокращаю количество полученных данных до одного поля, такого как createdAt, тогда я могу подсчитать количество объектов. - person Ivan Cantarino; 02.07.2018
comment
Я обнаружил, что запрос очень большого (скажем, 1 миллион) количества записей вернет фактическое количество вместе с сообщением об ошибке, что вы не можете запросить более 400 записей одновременно. Таким образом, вы можете подделать это с помощью звонка, который, как вы знаете, потерпит неудачу. - person john elemans; 18.09.2019
comment
Из этого сообщения: stackoverflow.com/questions/24191999/cloudkit-count-recordsAlso, для эффективности вы можете использовать свойство requiredKeys CKQueryOperation, чтобы ограничить объем данных, извлекаемых для каждой записи во время операции поиска. источник: requiredKeys Комментарии в исходном файле CKQueryOperation.h утверждают, что если задан пустой массив, объявляется, что никакие пользовательские поля не должны загружаться. - person Steve B; 28.08.2020