上下文:在客戶端上,修改字段並將該更改作爲關鍵字路徑 - 值對傳播到服務器。我從一個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
的東西。或者可以嗎?思考?
感謝mlucy。我將把數字作爲字符串映射到值。 (我會*喜歡*保持訂購的「寵物」,如果我要通過名稱[名稱到值映射]鍵,我需要通過另一個數組跟蹤訂單......我如果任何名稱改變,需要更新。) – Max
好吧,我最終做的事情有點怪誕,但無論如何這是一個業餘愛好項目。我只是檢索了整個對象,完成了我需要的更改,然後把整個事情都放回去了('替換整個文檔)。簡單,相對容易,並且沒有黑客......除非是非原子的而且效率低下的。 – Max