1

シーケンスを更新し、更新されたドキュメントの主キーを知る方法はありますか?

table.filter({some:"value"}).update({something:"else"})

次に、2 番目のクエリを必要とせずに更新されたレコードの主キーを知っていますか?

4

1 に答える 1

1

現在、 で複数の値を返すことはできません。{returnVals: true}たとえば、https://github.com/rethinkdb/rethinkdb/issues/1382を参照してください。

ただし、 forEach を使用してシステムをだます方法があります

r.db('test').table('test').filter({some: "value"}).forEach(function(doc) {
  return r.db('test').table('test').get(doc('id')).update({something: "else"}, {returnVals: true}).do(function(result) {
    return {generated_keys: [result("new_val")]}
  })
})("generated_keys")

それは機能しますが、本当にハックっぽいです。うまくいけば、配列の制限により、returnVals はすぐに範囲書き込みに使用できるようになります。

于 2014-01-28T05:21:39.843 に答える