Обновите документ и получите все его поля в 1 запросе
У меня есть идентификатор документа, и я хотел бы получить все его поля при обновлении некоторых из них в одном запросе, необязательно в качестве атомарной операции.
Я попробовал следующее:
myTable.get(id).update(someFields, {returnChanges: true})
... но он дает мне документ, только если он был изменен. Я хочу получить документ события, когда обновление не изменило ни одного поля.
В качестве временного решения tmp я в настоящее время использую два последовательных запроса: обновление, затем получение.
1 ответ
Я нашел решение:
myTable
.get(id)
.update(someFields, {returnChanges: 'always'})
('changes')(0)('new_val')
{returnChanges: 'always'}
говорит БД всегда возвращать пару new_val
/ old_val
даже когда они одинаковы.
Важное примечание: использование {returnChanges: 'always'}
будет иметь побочный эффект не выбрасывать исключение, если документ не найден. Вместо этого он вернется null
для обоих new_val
а также old_val
, Не полагайтесь на исключение в этом случае.