CouchDB и iOS

#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’, хотя, поскольку это означает, что при обновлении большого количества документов я передаю меньше данных за один запрос. Затем я просто получаю прямой доступ к каждому идентификатору документа, который возвращает представление.