#ios #couchdb #couchbase-lite
#iOS #couchdb #couchbase-lite
Вопрос:
Мне нужна помощь с проектом CouchDB iOS.
Я использую сервер Apache CouchDB и платформу iOS couchbase-lite.
В моем CouchDB у меня есть шаблон документа.
- CouchDB Server
- database
- template
- document 1
- document 2
- ...
Моя цель — синхронизировать мой iPad только с этим шаблонным документом, чтобы получать последние данные, необходимые моему приложению.
Но когда я ввожу некоторые данные на свой iPad, я хочу, чтобы эти данные передавались только на сервер couchBase.
Как я могу «сказать» своему приложению синхронизировать только один файл, а не всю базу данных с моим сервером, и в конце, как я могу «сказать» своему приложению передавать только данные, которые вводятся со стороны пользователя?
Что еще более важно, нужны ли мне две базы данных на моем сервере? Один для шаблона, а второй для пользовательских входных данных? Если ДА, то мне просто нужно знать, как я могу только передавать свои данные. Требуется руководство. Спасибо.
Ответ №1:
Вот как я решаю эту проблему:
- Я обычно добавляю дату «последнего обновления» ко всем своим документам и сохраняю это в формате, который означает, что они будут отсортированы по времени (эпоха или ггггддххмммсс). оба делают.
- Создайте представление, которое использует время обновления в качестве даты.
- На вашем клиенте сохраняйте время с момента последнего обновления.
- При обновлении получите доступ к представлению с параметром startkey, установленным на дату последнего обновления.
- Затем вы можете либо использовать ‘include-docs = true’, чтобы получить документы при запросе представления.
- Я обычно использую ‘include-docs = false’, хотя, поскольку это означает, что при обновлении большого количества документов я передаю меньше данных за один запрос. Затем я просто получаю прямой доступ к каждому идентификатору документа, который возвращает представление.