上下文:在客户端上,修改字段并将该更改作为关键字路径 - 值对传播到服务器。我从一个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