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