[英]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元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.