Each device establishes an accredited and encrypted IP connection with the service and receives notifications over this persistent connection.Просто реализация соединения с сервером APNs возложена на соответствующую часть самой iOS/OSX. Устанавливается обычное постоянное (P2P) сокетное соединение поверх TLS. Каждое устройство получает токен (идентификатор). APNs знает, за каким девайсом какой токен закреплен. Когда вы отправляете PUSH уведомление через какой-то сервис, то у вас есть токен, вы отправляете токен и полезную нагрузку в APNs, а уже служба APNs ищет активное соединение и отправляет пакет с данными на устройство. Если соединения нет, то APNs ставит уведомление в очередь, как только соединение установлено, на девайс уходит уведомление. Просто вместо открытия нескольких соединений используется только одно на устройство. Таким образом экономится трафик и энергия.
Еще habrahabr.ru/post/152477
И проблемы habrahabr.ru/post/153859
На правильные проблемы указал nirvimel - т.е. если нужны структурированные данные и SQL, MongoDB не подойдет. И он же привел пример неправильного использования этой базы, когда ввиду неправильного проектирования, было использование базы в качестве хранилища часто меняющихся структурированных данных.
Еще посмотрите на эту красивую выжимку kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis