从Python查询Couchbase存储桶

时间:2018-12-17 08:02:26

标签: 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.

1 个答案:

答案 0 :(得分:1)

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

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

CREATE PRIMARY INDEX ON boardwascreated

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

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