如何仅在数组没有的情况下追加到数组't包含带有rethinkDB的值
How to append to array only if it doesn't contain value with rethinkDB
我想将一个值附加到一个记录中的数组中,该记录看起来类似于以下内容:
{
_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元素。
相关文章:
- JavaScript数组包含一个值
- 如何将id数组与带下划线的对象数组嵌套属性进行比较
- JavaScript 如果数组包含名称,则不要这样做
- 如果数组包含特定值,则返回该值的完整“内容”
- Javascript if数组包含正则表达式字符串
- 如何从html响应解析javascript数组(包含JSON对象作为元素)
- 从数组中提取索引,该数组包含字符串中的每个单词
- 正确的MongoDB集合结构,包括Meteor中的值数组(不带键)
- 如何在旋转元素上设置查询 UI 数组包含
- 解析云查询数组包含值
- 如何检查数组包含 javascript 中的元素的条件
- 数组包含其他数组中的所有元素
- Javascript 数组包含/包含子数组
- 从数组(包含整数)创建ArrayBuffer,然后再次返回
- 删除动态填充的<仅在数组包含奇数项时起作用
- Javascript数组包含值
- 在这种情况下,我应该使用数组(包含对象)还是对象(包含对象)
- 如何扁平化多维数组包含对象在javascript
- Assert数组包含Chai数组
- jQuery inArray()返回-1如果数组包含单个元素