Это не широко известно, но конечной точке _update
разрешено возвращать документ с _id
проп, отличным от запрошенного.Это означает, что в вашем случае вам нужен уникальный документ, скажем _id:"doc-name"
, который будет служить ограничением.
Затем вы вызываете что-то вроде POST _design/whatever/_update/saveDependentDoc/doc-name
, предоставляя новый документ с различными _id
в качестве тела запроса.
Ваша _update
функция будет эффективно получать два документав качестве ввода (или null и newDoc, если ограничение документа отсутствует).Затем функция решает, что ей делать: возвращать полученный документ, чтобы сохранить его, или ничего не возвращать.
Решение не является полным ответом на ваш вопрос, однако в некоторых случаях может оказаться полезным.
Этот прием работает только для обновления существующих документов, если вы точно знаете ревизию.