0
如何在RethinkDB中執行原子upsert?例如,包含網址(id)和點擊次數(次數)的表格。據我應該使用{衝突:「更新」}文檔,所以我嘗試了以下內容:RethinkDB原子upsert
r.db('test').table('urls').insert({
id: 'google.com',
count: r.row('count').add(1).default(1),
// ... lots of other fields ...
}, {
conflict: 'update'
});
這將返回錯誤r.row is not defined in this context
。我在他們的github回購中發現了一個問題,danielmewes建議使用.get(...).replace(...)
來達到這個目的,但是如果替換整個文檔來更新一個字段不是很昂貴嗎?如果它不存在,我可以使用get
,然後使用update
或insert
,但這可能會導致競爭條件,因爲會有多個進程寫入此表。謝謝您的幫助!