Rethinkdb从数组中删除字符串

Sir*_*lot 1 javascript rethinkdb reql

给定如下的数组和数据结构,我想从表字段标记中删除与removeVals匹配的任何值.我找到了一个改变的解决方案,并尝试使用deleteAt,但得到一个indicesOf不是一个函数错误.

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

{
  name: "test1",
  tags: ["val1", "val2", "val3", "val4", "val5"]
}
Run Code Online (Sandbox Code Playgroud)

所以我应该留下:

{
  name: "test1",
  tags: ["val2", "val4", "val5"]
}
Run Code Online (Sandbox Code Playgroud)

我的代码到目前为止:

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)
    }
  })
});
Run Code Online (Sandbox Code Playgroud)

这是我用作参考的问题/答案.任何帮助将不胜感激,非常感谢!

Sir*_*lot 6

没关系,我找到了答案,这比我想象的容易得多,我太过复杂了!

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

无论如何,希望这有助于其他人