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