我是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
(而不是在我的服务器代码中执行),然后执行我的服务器代码,那么数据会很好地返回。但是,我希望在我的服务器代码中执行这个查询。这有可能吗?如果有,我该怎么办?你知道吗
您可以使用
n1ql_index_create
,将defer
设置为False
(这是默认值),或者将其设置为True
,并使用build_deferred_indexes
/watch_indexes
的组合来检测创建索引的时刻。你知道吗https://github.com/couchbase/couchbase-python-client/blob/2.2.5/couchbase/bucketmanager.py#L355
相关问题 更多 >
编程相关推荐