我想做一个“uppend_multi”:一个 append_multi ( http://pythonhosted.org/couchbase/api/couchbase.html#couchbase.bucket.Bucket.append_multi ),其中一些键可能不存在。如果它们尚不存在,则追加操作应该是插入操作。我怎样才能做到这一点? API 文档中没有任何内容表明支持此操作,但我想这是一个非常常见的操作。
现在我正在这样做,但似乎需要做的事情很自然,我非常怀疑这是最好的方法:
def _uppend_multi(bucket, append_dict):
reinsert_dict = {}
try:
bucket.append_multi(append_dict, format = couchbase.FMT_UTF8)
except CouchbaseError as exc:
for k, res in exc.all_results.items():
if res.success:
pass
else:
reinsert_dict[k] = append_dict[k]
if len(reinsert_dict.keys()) > 0:
bucket.insert_multi(reinsert_dict, format = couchbase.FMT_UTF8)
请您参考如下方法:
据我所知,在 Couchbase Python SDK 和较低级别的 C API (libcouchbase) 中都没有这样的“uppend”操作。
您目前正在做的可能是一个非常合理的解决方案。
