如何知道Couchbase是否使用UPSERT更新或插入了记录

时间:2019-02-07 13:21:53

标签: java-8 couchbase

我正在使用Couchbase Java SDK读取和写入数据。目前,我拥有大量需要保存在Couchbase中的记录。这些记录包含新记录或现有记录。

我正在使用Bucket.upsert来实现此功能。但是我还需要捕捉到在Couchbase中创建或更新了多少条记录。

如何有效实现这一目标?以下是我现在拥有的伪代码

JsonDocument doc = bucket.get("docId")
if (doc != null) {
    // Perform update
    updatedCount++;
} else {
    // perform insert
    insertedCount++;
}

任何想做这种更好方法的人。因为我有超过50万条记录要保存到Couchbase中。

1 个答案:

答案 0 :(得分:3)

不幸的是,我们目前不公开UPSERT是插入还是更新。

如果您希望对性能有所帮助,可以在插入失败后直接进行插入,然后进行更新,并跟踪插入失败的频率。那应该给你一些指示,一个高位插入将多久插入一次而不是更新。

如果这对性能影响太大,则可以用1/1000或1 / 1,000,0000操作执行两步操作。这样可以在产生有用信息的同时保持性能损失的可管理性。