Фильтровать удаленные коллекции в Couchbase Views

Как я могу написать условие в представлениях Couchbase, чтобы отфильтровать удаленную коллекцию из результата.

function (doc, meta) {
  if(doc.type=='folder'){
    emit(doc.folder_id, doc);
  }
}

Вот мой простой вид, он дает некоторые удаленные папки в ответе json.

1 ответ

  1. Имейте в виду, что взгляды только в конечном итоге последовательны. Они не возвращают данные в реальном времени. Представлениям может потребоваться некоторое время, чтобы отобразить данные в CB.

  2. В частности, удаление удаленных элементов из результатов просмотра CB занимает до минуты. Это несколько настраивается.

  3. Важно: не создавайте "doc" в ваших представлениях - это расточительно (поскольку в CB хранится еще одна копия каждого документа).

  4. Вместо этого вы обычно можете запросить, чтобы документ был присоединен к результату (в python он называется "include_doc" - http://pythonhosted.org/couchbase/api/views.html). Это может помочь вам решить проблему: если вы запросите, чтобы документы были включены в результаты просмотра, то если документ был удален, он просто не вернет его, сообщив, что он уже удален.

    1. В качестве альтернативы, если у вас нет "include_doc" в вашем клиенте, вы можете сделать это вручную: получить результаты просмотра (только список идентификаторов документов) и для каждого документа выполнить "get" для извлечения данных. Если вы не можете найти документ, он был удален. (в отличие от представлений действия "get" полностью согласованы - они отражают данные, записанные на диск).
Другие вопросы по тегам