1

上下文:在客户端上,修改了一个字段,并且该更改作为键路径-值对传播到服务器。我从一个 keypath 开始,比如foo.bar.baz= cat,我可以将其转换为{foo: {bar: {baz: "cat"}}}然后merge进入我的文档(可能看起来像{foo: {bar: {baz: "dog"}}})。

到目前为止,这对所有objects都很好,但是当我需要对array做某事时它会崩溃。


假设我在 RethinkDB 中的文档如下所示{name: "Me", pets: [{name: "Shadow"}]}:用户决定更新宠物的名字,所以 keypath 看起来像pets[0].name= Sparky。据我所知,这不能简单地(或非平凡地,就此而言)转换为我可以传递给merge. 或者可以吗?想法?

4

1 回答 1

0

您必须编写类似.update(function(row) { return {pets: row('pets').changeAt(0, row('pets')(0).merge({name: 'Sparky'}))};}). 我建议改为制作pets从名称到宠物的映射(或者如果您真的想要索引,则从“数字转换为字符串”到宠物)。

于 2016-06-12T22:53:51.217 回答