【问题标题】:query a Couchbase bucket from Python从 Python 查询 Couchbase 存储桶
【发布时间】:2018-12-17 08:02:26
【问题描述】:

我可以在 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】:

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

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

    CREATE PRIMARY INDEX ON boardwascreated
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-19
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多