在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.
答案 0 :(得分:1)
要在存储桶上运行N1QL查询,您需要在该存储桶上建立索引。这样做的基本方法是在其上创建主索引。
打开管理控制台,然后转到“查询工作台”。进入管理控制台后,您应该在左侧看到“查询”标签。然后运行此命令以创建主索引。
CREATE PRIMARY INDEX ON boardwascreated
您还需要提供用户名/密码凭据才能访问存储桶。最初,您可以使用创建的任何Administrator / admin_password组合。我不确定如何使用Python SDK提供该功能。检查文档。
稍后,您应该转到“安全性”标签,为正在构建的任何应用程序创建一个专门的用户,并为该用户提供所需的任何查询权限。