使用 Twisted API for Python SDK 的异步 N1QL couchbase 查询

Async N1QL couchbase query using Twisted API for Python SDK

我正在编写 Tornado 应用程序并且需要进行异步 N1QL 查询。对于使用 txcouchbase (twisted couchbase library) along with tornado-twisted bridge 的 map-reduce 视图,效果很好,但我不能对 N1QL 查询执行相同的操作。

...

from txcouchbase.bucket import Bucket as AsyncBucket
ASYNC_USER_BUCKET = AsyncBucket(**settings.USER_BUCKET_ARGS)

class FooHandler(BaseAPIHandler):
    @schema.validate()
    @authenticated
    @coroutine
    def get(self):
        res = yield ASYNC_USER_BUCKET.n1qlQueryAll("SELECT * FROM farm_user;")
        ...

执行以下查询后 res 对象 不可迭代 并且看起来像这样。

似乎 _BatchedRowMixin__rows 字段包含查询结果,但我不确定这是进行异步 N1QL 查询的正确且稳定的方法。还有其他选择吗?

您似乎发现了我们客户端中的错误。它已被归档为 https://issues.couchbase.com/browse/PYCBC-306. Our code-review has a patch up which should be merged soon (http://review.couchbase.org/#/c/56402/).