在RethinkDB github上看到一些SO問題和問題後,我沒有得出一個明確的結論,如果原子Upsert是可能的?正確的Upsert(原子更新計數器字段或插入文檔)與RethinkDB
本質上我想使用Redis執行與ZINCRBY相同的操作。
如果構件不會在有序集合存在時,它被添加與增量 作爲其得分(如如果其先前的得分爲0.0)。如果密鑰不存在 ,則會創建一個指定成員作爲其唯一成員 的新排序集。
當前的實現似乎不同於我已經使用的幾乎所有數據庫。數據被替換或插入不更新。這是一個簡單的用例,例如更新上次訪問,更新點擊次數,更新產品數量。所以我必須錯過一些非常明顯的東西,因爲我看不到一個簡單的方法來做到這一點。
Hi @AnnNm。感謝您的回覆,但我沒有完全遵循您的示例。 我沒有任何東西可以替換,因此get會返回null或錯誤。我想插入一行{name:「A」,得分:1,類型:player}。如果A已經在桌上,那麼我想要拿分並更新它。 我想插入文檔或萬一文檔存在增加分數。如果我按照您的示例,該功能要求玩家已經存在,並創建分數記錄或增量(如果已經存在)。 – Astronaut
用例類似於Redis zincrby或PouchDB https://github.com/pouchdb/upsert – Astronaut
玩家不存在的情況由'row.eq(null)'上的'r.branch'處理' 。我用一個例子和文檔的鏈接編輯了答案。 – AtnNn