我是couchbase的新手,我正在尝试查询现有存储桶中的文档。当我在python中执行我的服务器代码时,会报告以下错误日志
HTTPError: <RC=0x3B[HTTP Operation failed. Inspect status code for details], HTTP Request failed. Examine 'objextra' for full result, Results=1, C Source=(src/http.c,140), OBJ=ViewResult<rc=0x3B[HTTP Operation failed. Inspect status code for details], value={u'status': u'fatal', u'metrics': {u'elapsedTime': u'64.108808ms', u'executionTime': u'63.940999ms', u'resultSize': 0, u'resultCount': 0, u'errorCount': 1}, u'errors': [{u'msg': u'No primary index on keyspace default. Use CREATE PRIMARY INDEX to create one.', u'code': 4000}], u'requestID': u'14a2ba49-512b-4a4b-9e8d-37ef6c010c34'}, http_status=404>>
我当前执行get请求/查询操作的python代码段是
def get(self):
tableName = request.args.get("tablename")
createPrimaryIndex = N1QLQuery("create primary index on `default`")
cb.n1ql_query(createPrimaryIndex)
q = N1QLQuery("select * from `default` where tablename='{0}' limit 10;".format(tablename))
for row in cb.n1ql_query(q):
print row
我观察到如果我进入couchbase控制台并执行查询set primary index on default
(而不是在我的服务器代码中执行),然后执行我的服务器代码,数据将被正常返回。但是,我希望在我的服务器代码中执行此查询。这是可能的,如果可以的话,我应该怎么做呢?
答案 0 :(得分:0)
您可以onPress
将onRowPress
设置为n1ql_index_create
(默认设置),或将其设置为defer
并使用False
/ {的组合{1}}检测索引创建的时刻。
https://github.com/couchbase/couchbase-python-client/blob/2.2.5/couchbase/bucketmanager.py#L355