1

以下のような配列とデータ構造が与えられた場合、 removeValsに一致する値をテーブル フィールドtagsから削除したいと考えています。変更の解決策を見つけて、 deleteAtを試してみましたが、indexsOf is not a functionエラーが発生しました。

var removeTags = ["val1", "val3"];

{
  name: "test1",
  tags: ["val1", "val2", "val3", "val4", "val5"]
}

だから私は残されるべきです:

{
  name: "test1",
  tags: ["val2", "val4", "val5"]
}

これまでの私のコード:

var removeTags = ["val1", "val2"]
r.db('test').table('data').get('test1').update(function(row) {
  return row('tags').indexesOf(function(rl) {
    return r.expr(removeTags).contains(rl)
  })(0).do(function(idx) {
    return {
      roles: row('tags').deleteAt(idx)
    }
  })
});

これは、私が参考として使用していた質問/回答です。どんな助けでも大歓迎です、どうもありがとう!

4

1 に答える 1

7

気にしないでください、私は答えを見つけましたが、思ったよりもはるかに簡単でした。物事を複雑にしすぎていました!

var removeTags = ['val1', 'val2'];
r.db('test').table('data').get('test1')
  .update({tags: r.row('tags').difference(removeTags)});

とにかく、これが他の人に役立つことを願っています

于 2016-09-16T09:49:42.400 に答える