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个字符。也谢谢你的回答,这也正是我想要的:)