如何在Python中创建索引时使用Couchbase函数?

时间:2017-08-20 15:57:51

标签: python couchbase

我正在尝试创建inverted index on a date field。它在Couchbase管理控制台中工作,但我在Python代码中遇到错误。我显然用python做错了,但我找不到任何关于在Python中使用索引创建功能的例子。这是一个有用的N1QL:

CREATE INDEX `mytabenter code herele_date` ON `mytable`(-TONUMBER(`date`));

这是一个破碎的Python代码:

cb = Bucket('couchbase://localhost/mytable', password='passw0rd')
cb.bucket_manager().create_n1ql_index('mytable_date_desc', fields=[-TONUMBER('date_desc')], defer=True, ignore_exists=True)

function -TONUMBER生成错误“Unresolved reference”/“NameError:name'TONUMBER'未定义”。

使用函数创建此类索引的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

您需要转义TONUMBER,因为它是N1QL定义的函数,而不是直接在Python SDK中;以下示例应该有效:

manager.create_n1ql_index( 'mytable_date_desc', fields=['(-TONUMBER(`date`))'], defer=True, ignore_exists=True)

答案 1 :(得分:0)

.create_n1ql_index()是为了方便,不一定是API完整。它允许您处理最简单的情况,但更复杂的情况可以通过查询API更好地处理字符串。