Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何仅在数组没有';不包含带参数的值_Javascript_Rethinkdb_Reql - Fatal编程技术网

Javascript 如何仅在数组没有';不包含带参数的值

Javascript 如何仅在数组没有';不包含带参数的值,javascript,rethinkdb,reql,Javascript,Rethinkdb,Reql,我想在记录中的数组中附加一个值,该值类似于以下内容: { _id: 'foo', cols: [ 'abc123', '123abc' ] } 此字段可能不存在,需要在追加之前创建。如果数组中已经存在值,我也不想附加到数组中。到目前为止,我有以下满足所有,但最后的要求,不添加重复条目 r.table('users') .get(userId) .update({ cols: r.row('cols').default([]).append(uuid) }

我想在记录中的数组中附加一个值,该值类似于以下内容:

{
  _id: 'foo',
  cols: [
    'abc123',
    '123abc'
  ]
}
此字段可能不存在,需要在追加之前创建。如果数组中已经存在值,我也不想附加到数组中。到目前为止,我有以下满足所有,但最后的要求,不添加重复条目

r.table('users')
 .get(userId)
 .update({
   cols: r.row('cols').default([]).append(uuid)
 }) 

感谢您的帮助,谢谢

您有几种解决方案

r.table('users')
 .get(userId)
 .update({
   cols: r.branch(r.row('cols').default([]).contains(uuid),
                   r.row('cols'),
                   r.row('cols').default([]).append(uuid))
 }) 
或者我们可以使用
setInsert
作为@char建议

r.table('users')
 .get(userId)
 .update({
   cols: r.row('cols').default([]).setInsert(uuid))
 }) 

setInsert
的问题是确保返回一个集合。因此,如果您有意将重复元素放入原始
cols
,它将删除dup元素。

您可以尝试使用
setInsert
Distinct,因为据我所知,它定义了不应存在重复的hanks!我最终使用了setInsert,因为这正是我需要的功能。我必须进一步研究
分支
方法。你知道其中一个是否更有效吗?仅供参考,在setInsert调用之后,你还有一个额外的选项)。我试图自己编辑它,但出于某种奇怪的原因,stackoverflow不允许编辑少于6个字符。也谢谢你的回答,这也正是我想要的:)