2016-09-16 67 views
1

如下給出的陣列和數據結構中刪除的字符串,我想刪除從removeVals匹配來自表字段標籤任何值。我找到了一個更改的解決方案,並嘗試使用deleteAt,但得到了索引。不是函數錯誤。Rethinkdb從陣列

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) 
    } 
    }) 
}); 

這是我用作爲參考question/answer。任何幫助將不勝感激,非常感謝!

回答

3

沒關係,我找到了答案,它比我想象的要容易得多,因爲我太過於複雜了!

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

不管怎麼說,希望這可以幫助別人