从Python查询Couchbase存储桶

问题描述 投票:1回答:1

我可以在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.
python couchbase
1个回答
1
投票

要在存储桶上运行N1QL查询,您需要在该存储桶上使用索引。这样做的基本方法是在其上创建主索引。

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

CREATE PRIMARY INDEX ON boardwascreated

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

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

© www.soinside.com 2019 - 2024. All rights reserved.