Вопрос

Я думаю, что где-то читал, что когда запрашивается представление, «карта» выполняется только для документов, которые были добавлены с момента последнего запроса?Как это определяется?Мне показалось, что я видел что-то про порядковый номер.Это то, до чего ты можешь добраться?Это не часть UUID, завершающего поле _rev, не так ли?

Есть ли способ принудительно «пересчитать» все представление (по всем записям)?

Это было полезно?

Решение

Раздел о просмотре индексов в Технический обзор является отличным руководством по этому вопросу.

Построитель представлений использует идентификатор последовательности базы данных, чтобы определить, полностью ли обновлена ​​группа представлений с базой данных.В противном случае механизм представления проверяет все документы базы данных (в упакованном последовательном порядке), измененные с момента последнего обновления.Документы читаются в том порядке, в котором они встречаются в файле на диске, что снижает частоту и стоимость поиска головок диска.
По мере проверки документов их предыдущие значения строк удаляются из индексов представлений, если они существуют.Если документ выбран функцией просмотра, результаты функции вставляются в представление как новая строка.

CouchDB сначала проверяет, что-либо изменился во всей базе данных с использованием идентификатора последовательности (который обновляется при каждом изменении любого документа в базе данных).Если что-то изменилось, он ищет эти документы и запускает для них функцию карты.

На самом деле не должно быть никакой необходимости перестраивать/перегенерировать ваши представления, поскольку они будут постепенно обновляться по мере изменения ваших документов (обратите внимание, что представление не будет обновляться до тех пор, пока вы его не используете).С учетом сказанного, один из способов (и я уверен, что есть лучший способ) — удалить проектный документ, описывающий представление, и вставить его снова, поскольку проектный документ ничем (почти) не отличается от обычного документа.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top