Контекст: на клиенте поле изменяется, и это изменение передается на сервер в виде пары ключ-значение. Я начинаю с ключевого пути, что-то вроде foo.bar.baz
= cat
, который я могу преобразовать в {foo: {bar: {baz: "cat"}}}
, а затем merge
в свой документ (который может выглядеть примерно как {foo: {bar: {baz: "dog"}}}
).
До сих пор это работало нормально для всех объектов, однако оно ломалось, когда мне нужно было что-то сделать с массивом.
Предположим, мой документ в RethinkDB выглядел так: {name: "Me", pets: [{name: "Shadow"}]}
. Пользователь решает обновить имя питомца, поэтому путь к ключу выглядит примерно так: pets[0].name
= Sparky
. Насколько я могу судить, это нельзя тривиально (или нетривиально, если на то пошло) преобразовать во что-то, что я могу передать merge
. Или может? Мысли?