python - 从 Python 查询 Couchbase 存储桶

标签 python couchbase

我可以在 Couchbase 管理控制台中看到我的以下 Python 代码正在将数据/文档放入存储桶中:

def write_to_bucket(received_cluster, current_board, always_never, position):
    board_as_a_string = ''.join(['s', 'i', 'e'])

    cb = received_cluster.open_bucket('boardwascreated')
    cb.upsert(board_as_a_string,
          {'BoardAsString': board_as_a_string})

但是无论我做什么,我都无法从 Python 查询数据。我尝试这样的事情:

def database_query(receiving_cluster):
    cb = receiving_cluster.open_bucket('boardwascreated')

    for row in cb.n1ql_query('SELECT * FROM boardwascreated'):
        print(row)

我正在尝试 https://docs.couchbase.com/python-sdk/2.5/n1ql-queries-with-sdk.html 中的所有可能的事情,但每次我尝试某些操作时都会收到以下错误:

 No index available on keyspace boardwascreated that matches your query.
    Use CREATE INDEX or CREATE PRIMARY INDEX to create an index, 
    or check that your expected index is online.

最佳答案

要在存储桶上运行 N1QL 查询,您需要在该存储桶上建立索引。执行此操作的基本方法是在其上创建主索引。

打开管理控制台并转到 Query WorkBench。进入管理控制台后,您应该会在左侧看到“查询”选项卡。然后运行此命令创建主索引。

CREATE PRIMARY INDEX ON boardwascreated

您还需要提供用户名/密码凭据才能访问存储桶。最初,您可以使用您创建的任何管理员/管理员密码组合。我暂时不确定如何使用 Python SDK 提供它;检查文档。

稍后,您应该转到“安全”选项卡,为您正在构建的任何应用程序创建一个专门的用户,并为该用户提供他们所需的任何查询权限。

关于python - 从 Python 查询 Couchbase 存储桶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53811015/

相关文章:

python - 名称错误 : "global name ' ZIP_STORED' is not defined"

couchbase - 如何从兄弟数组中选择字段?

java - 如何用 lambda 替换 Observable 匿名内部类(包括记录器)以进行多个 Couchbase 访问?

python - 没有名为 _mysql 的模块 - Google App Engine 和 Django

python - 替换 Numpy 数组中的多个值

python - 旋转矩阵到四元数等价

python - 如何以 pythonic 方式实现多态算术运算符?

node.js - 在开始 Mocha 测试之前确保 Express 应用程序正在运行

couchbase - 存储桶内更改的异步客户端通知

java - 测试容器 Couchbase 超时