Skip to main content
 首页 » 编程设计

python之Couchbase:python SDK "uppend"

2025年05月04日49落叶无声

我想做一个“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”操作。

您目前正在做的可能是一个非常合理的解决方案。