1

コンテキスト: クライアントでは、フィールドが変更され、その変更がキーパスと値のペアとしてサーバーに伝達されます。foo.bar.baz=のようなキーパスから始めますcat。これを変換して{foo: {bar: {baz: "cat"}}}merge自分のドキュメント (のように見えるかもしれません{foo: {bar: {baz: "dog"}}}) に変換できます。

これまでのところ、これはすべてのオブジェクトでうまく機能していますが、配列で何かをする必要があるとうまくいきません。


RethinkDB 内の私のドキュメントが次のようになっているとします{name: "Me", pets: [{name: "Shadow"}]}。ユーザーはペットの名前を更新することにしたので、キーパスは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 に答える