Примечание: Это общий алгоритм, он не является специфическим для какой-либо библиотеки, поскольку метод nano's insert()
не предлагает ничего автоматизированного для обновления документов.
Получить документ, сохранить текущую версию, применить изменения и попытаться отправить документ с сохраненным номером ревизии.
Обязательно обработайте возможные 409 ответов на конфликт, которые возникают, когда документ был изменен между тем.
В этом случае вы должны восстановить документ, сохранить номер версии, повторно применить свои изменения, а затем попытаться отправить его снова с новой ревизией.
Так вот алгоритм:
- Получить документ
- Сохранить _rev
- Применить изменения
- Попробуйте отправить обновленный документ с сохраненным _rev
- Перейти к шагу 1 в случае a 409
Оформить заказ CouchDB HTTP Document API's PUT section и CouchDB's Replication and Conflicts для получения дополнительной информации. Вы также можете найти How To Update A Document With Nano (The CouchDB Client for Node.js).
Я знаю, что мне нужна ревизия. Вопрос в том, что является функцией с аргументом «ревизии» в nano. Правильный ответ, но по другому вопросу. – DSblizzard
Это правильный ответ даже для вашего вопроса. Просто прочитайте документацию [nano's Document API] (https://github.com/dscape/nano#document-functions). Существует только метод 'inser()', который означает, что вы должны установить правильную версию документа, который хотите вставить. –
Можете ли вы показать код, пожалуйста? – DSblizzard